Hi,
ich habe mittlerweile, nach langem Suchen, die Antwort gefunden. Will man die Eigenschaften eines Feldes nutzen, so muss man persistente Felder für ein Dataset erzeugen.
Nutzt man die Felder dynamisch, soll heißen man öffnet einfach die
Query, so werden alle Felder automatisch erzeugt. Damit bleiben aber viele Eigenschaften nicht nutzbar.
Fügt man die Felder als persistent hinzu kann man Eigenschaften, wie 'readonly', 'visible' und 'CustomConstraint' nutzen und diese einfach an andere Elemente weitergeben.
schnipp
Delphi-Quellcode:
procedure TDM_Database.CreatePersistentFields(Datasource: TDatasource);
var i: Integer;
begin
Datasource.DataSet.Open;
for i := 0
to Datasource.DataSet.FieldDefs.Count -1
do
begin
Datasource.DataSet.Close;
Datasource.DataSet.FieldDefs.Items[i].CreateField(self);
end;
end;
// Gefunden in DP-Suche: Persistente Felder
schnapp
Dann funktioniert auch Dein Vorschlag problemlos: einfach DBGrid mit Datasource verbinden. Die Eigenschaften der Felder sind dieselben. Damit können die Eigenschaften der Felder im DBGrid benutzt werden.
Danke für Deine Mühe,
Gruß,
Barnti