Як дізнатися значення осередки в 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