Ich will die Spaltenanzeige eines TDBGrids zur Laufzeit erzeugen.
Folgendes funktioniert bereits (stark vereinfacht):
Code:
dbgrdTest.Columns.Add;
dbgrdTest.Columns[0].FieldName := 'Datenbankname';
dbgrdTest.Columns[0].Title.Caption := 'Anzeigename';
dbgrdTest.Columns[0].Width := 100;
Jetzt will ich zur Laufzeit dieser Spalte ein OnGetText-Ereignis zuweisen um aus dem Datenbank-Wert z.B. 'U' die Anzeige 'Erledigung durch Übernahme' im Grid zu machen. Die procedure hierzu sieht wie folgt aus:
Code:
procedure TDataModulQuerySteuernummer.ErledigungVLGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
Text := 'Erledigung durch Übernahme';
DisplayText := True;
end;
Mein Versuch
Code:
dbgrdTest.Columns[0].Field.OnGetText := 'DataModulQuerySteuernummer.ErledigungVLGetText';
scheitert mit dem Fehlerhinweis
Inkompatible Typen: 'TFieldGetTextEvent' und 'String'
Mir ist jetzt nicht klar, wie ich der Spalte das OnGetText-Ereignis zuweisen kann.
Mit meinem Wissen komme ich nicht weiter. Wer kann mir einen Lösungsweg aufzeichnen?
Gruss
Barny
Es gibt viel zu verbessern, aber im Grunde genommen kann man zufrieden sein.