Як прочитати дані з комірки dbgrid

Як дізнатися значення осередки в DBGrid, по якій ми натиснули праву кнопку миші і як дізнатися назву стовпчика?

напевно все таки потрібно дізнатися назву стовпця

1. У DBGrid немає ніяких даних.
2. SelectedField + F1

виходить дізнатися тільки назва першого поля, а мені потрібно те, за яким я клякнул

Чи є в DBGrid.Options значення dgRowSelect?

Наскільки пам'ятаю, при натисканні правої кнопки в будь-якому місці dbgrid, активна осередок свого положення не змінює.


> Як дізнатися значення осередки в DBGrid

Ще одного Іванка за дивом послали.


> Наскільки пам'ятаю, при натисканні правої кнопки в будь-якому місці
> Dbgrid, активна осередок свого положення не змінює.

Змінює. Але OnClick не викликається.

Можу поспівчувати - DBGrid не викликає призначеного для користувача обробника MouseDown, а на MouseUp цілком собі (це в разі, якщо немає RowSelect в опціях):

procedure TfMain.DBGrid1MouseUp (Sender: TObject; Button: TMouseButton;
# XA0; Shift: TShiftState; X, Y: Integer);
begin
# XA0; if Button = mbRight then
# XA0; # XA0; if Assigned (DBGrid1.SelectedField) then
# XA0; # XA0; # XA0; ShowMessage (DBGrid1.SelectedField.AsString);
end;


> ShowMessage (DBGrid1.SelectedField.AsString);

або
ShowMessage (DBGrid1.SelectedField.FieldName);

Втім, для RowSelect в опціях теж не дуже складно

type
# XA0; TDBGridCrack = class (TCustomDBGrid)
# XA0; end;

procedure TfMain.DBGrid1MouseUp (Sender: TObject; Button: TMouseButton;
# XA0; Shift: TShiftState; X, Y: Integer);
var
# XA0; Cell: TGridCoord;
# XA0; Column: TColumn;
begin
# XA0; if Button = mbRight then
# XA0; # XA0; if not (dgRowSelect in DBGrid1.Options) then
# XA0; # XA0; begin
# XA0; # XA0; # XA0; if Assigned (DBGrid1.SelectedField) then
# XA0; # XA0; # XA0; # XA0; ShowMessage (DBGrid1.SelectedField.AsString);
# XA0; # XA0; end
# XA0; # XA0; else
# XA0; # XA0; begin
# XA0; # XA0; # XA0; Cell: = DBGrid1.MouseCoord (X, Y);
# XA0; # XA0; # XA0; if Cell.X> = TDBGridCrack (DBGrid1) .LeftCol then
# XA0; # XA0; # XA0; begin
# XA0; # XA0; # XA0; # XA0; Column: = DBGrid1.Columns [Cell.X - TDBGridCrack (DBGrid1) .LeftCol];
# XA0; # XA0; # XA0; # XA0; ShowMessage (Column.Field.AsString);
# XA0; # XA0; # XA0; end;
# XA0; # XA0; end;
end;

> 1. В DBGrid немає ніяких даних.

Там трохи даних є.
See also: DataLink property.

мені чомусь здається, що викликається воно в разі наявності присутності попап-меню. Та й уже після його вискакування. Та й власне, це його подія, а не гріда.

Пам'ять: 0.75 MB
Час: 0.041 c