Cum se citește datele din celula dbgrid

Cum să găsim valoarea celulei în DBGrid, prin care am apăsat butonul drept al mouse-ului și cum să aflăm numele coloanei?

probabil toți trebuie încă să cunoască numele coloanei

1. Nu există date în DBGrid.
2. SelectedField + F1

Se pare că a învățat doar numele primului câmp și am nevoie de ceva ce am blestemat

Are DBGrid.Options valoarea dgRowSelect?

În ceea ce îmi amintesc, atunci când faceți clic dreapta oriunde în dbgrid, celula activă a poziției sale nu se schimbă.


> Cum se găsește valoarea unei celule DBGrid

O altă Ivanușcă a fost trimisă pentru un miracol.


> În ceea ce îmi amintesc, când faceți clic dreapta oriunde
> dbgrid, celula activă a poziției sale nu se modifică.

Modificări. Dar OnClick nu este chemat.

Pot simpatiza - DBGrid nu determina utilizatorul handler MouseDown, dar într-o destul de MouseUp (acesta este cazul, în cazul în care nu există RowSelect în opțiuni):

procedura TfMain.DBGrid1MouseUp (Expeditor: TObject; Buton: TMouseButton;
# xA0; Shift: TShiftState; X, Y: Integer);
începe
# xA0; dacă Button = mbRight atunci
# xA0; # xA0; dacă este atribuită (DBGrid1.SelectedField) atunci
# xA0; # xA0; # xA0; ShowMessage (DBGrid1.SelectedField.AsString);
se încheie;


> ShowMessage (DBGrid1.SelectedField.AsString);

sau
ShowMessage (DBGrid1.SelectedField.FieldName);

Cu toate acestea, pentru RowSelect în opțiuni, de asemenea, nu este foarte dificil

tip
# xA0; TDBGridCrack = clasa (TCustomDBGrid)
# xA0; sfârșitul;

procedura TfMain.DBGrid1MouseUp (Expeditor: TObject; Buton: TMouseButton;
# xA0; Shift: TShiftState; X, Y: Integer);
var
# xA0; Celula: TGridCoord;
Coloana: Coloană;
începe
# xA0; dacă Button = mbRight atunci
# xA0; # xA0; dacă nu (dgRowSelect în DBGrid1.Options) atunci
# xA0; # xA0; începeți
# xA0; # xA0; # xA0; dacă este atribuită (DBGrid1.SelectedField) atunci
# xA0; # xA0; # xA0; # xA0; ShowMessage (DBGrid1.SelectedField.AsString);
# xA0; # xA0; sfârșitul
# xA0; # xA0; altceva
# xA0; # xA0; începeți
# xA0; # xA0; # xA0; Celula: = DBGrid1.MouseCoord (X, Y);
# xA0; # xA0; # xA0; dacă Cell.X> = TDBGridCrack (DBGrid1) .LeftCol atunci
# xA0; # xA0; # xA0; începeți
# xA0; # xA0; # xA0; # XA0; Coloană: = DBGrid1.Columns [Cell.X - TDBGridCrack (DBGrid1) .LeftCol];
# xA0; # xA0; # xA0; # XA0; ShowMessage (Column.Field.AsString);
# xA0; # xA0; # xA0; sfârșitul;
# xA0; # xA0; sfârșitul;
se încheie;

> 1. Nu există date în DBGrid.

Există puține date acolo.
Vezi și: Proprietatea DataLink.

Din anumite motive, mi se pare că se va numi dacă există un pop-meniu. Și chiar după pop-up-ul său. Și de fapt, acesta este evenimentul său, nu grila.

Memorie: 0,75 MB
Durată: 0.041 sec