tcomponentdatalink, datasource und verbundene Comps

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
arturx
Beiträge: 140
Registriert: Fr 21. Nov 2008, 11:29
OS, Lazarus, FPC: Winux (L 1.0.6.xy FPC 2.6.z)
CPU-Target: 32/64Bit

tcomponentdatalink, datasource und verbundene Comps

Beitrag von arturx »

Ziel ist es herauszufinden, welche componenten mit einer datasource verbunden sind.

Die Einträge der internen datalinklist der datasource sind erreichbar über einen kleinen Umweg:

Code: Alles auswählen

type tpublicdatasource = class(tdatasource)
   public   property DataLinks;
      end;
procedure  test(ds : tdatasource);
var dtlinklist : tdatalinks;
   dtlink : tdatalink;
begin dtlinklist := tpublicdatasource(ds).DataLinks;// Hack !!
         For i := 0 to dtlinklist.count-1 do
              begin dtlink := tdatalink(dtlinklist[i]);
                       -----dtlink-auswerten ....
               end;                 
 end

Das Auswerten der Dtlinks ist manchmal problematisch:
1.tfielddatalink Einträge habe die wunderbare Eigenschaft CONTROL --> also perfekt geeignet
2.tcomponentdatalink Einträge haben nix dergleichen (leider werden die für DBGrid (für die columns) genutzt)
    property visual hilft nicht wirklich
    property fields bringt nichts, da diese nur auf das Dataset verweisen
----------------------------------------------------------------
1. gibt es eine Möglichkeit, direkt von dataset-datasource ausgehend die angeschlossenen componenten zu ermitteln ?
2.Ein (haarsträubender ?) Weg wäre es, die Notification-List der Datasource auszuwerten
   (aber das kann doch nicht sinnvoll sein!...es sei denn, irgendjemand hält das für einen Standard und sagt wie)
3....oder muss man andersherum alle componenten der Application
auf die Eigenschaft datasource und deren Inhalt untersuchen und filtern ?
 

Antworten