Das funktioniert beim TMS DBGrid so nicht. Das Grid hat in den Events keinen "Cursor" zum Datensatz.
Du kannst dort also nicht auf das
Query zugreifen wie es bei anderen Grids möglich ist.
So musst du die Werte/Spalten die du z.B für Berechnungen o.ä brauchst im Grid ablegen und die Daten von dort holen.
Also die Spalte ORT hinzufügen. Wenn du die Spalte nicht brauchst, schaltest du sie mit grid.HideColumn weg.
Delphi-Quellcode:
procedure TBrowseForm.GridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var S:String; Adresse:TAdresse;
begin
if (Grid.Columns[ACol].FieldName = 'PLZ') then
begin
S:= Grid.Cells[Grid.ColumnByFieldName['PLZ'].Index, ARow] + ' ' + Grid.Cells[Grid.ColumnByFieldName['ORT'].Index, ARow];
Grid.Canvas.TextOut(Rect.Left+2,Rect.Top+2,S);
end;
end;
Da ich neugierig bin, was soll das eigentlich werden?