Mega Code Archive

 
Categories / Delphi / ADO Database
 

Getting current record from a tdbgrid

Question: How do you tell which record and which field of a TDBGrid is current? Answer: Here is a method to keep track of the current column and row. The following code in the method MyDBGridDrawDataCell updates the variables Col and Row (which must not be local to the method) every time the grid is redrawn. Using this code you can assume that Col and Row point to the current column and row respectively. int Col, Row; void __fastcall TForm1::DBGrid1DrawDataCell(TObject *Sender, const TRect &Rect, TField *Field, TGridDrawState State) { int RowHeight; if (State.Contains(gdFocused) { RowHeight = Rect.Bottom - Rect.Top; Row = (Rect.Top / RowHeight) - 1; Col = Field->Index; } }