Hallo zusammen
um TDataSource und TDataSet zu bündeln habe ich eine Klasse (TCL_Dao) angelegt. Im Constructor dieser Klasse werden TDataSource und TDataSet übergeben. Die Klasseneigene Methode: ON_DataChange wird mit der TDataSource.OnDataChange := @ON_DataChange
verbunden.
Die Attribute für diese Klasse liegen alle in TDataModul. (mo_DAO_Namen)
Über den Public Bereich im TDataModul liefere ich die Dao's als Property's nach aussen.
( DAO_Namen : TCL_Dao READ mo_DAO_Namen ).
Nun stellt diese Dao Klasse ebenfalls ein Property: OnDataChange zur Verfügung.
Obwohl ich dieses Property in der Klasse setze ( Dao_Namen,ONDataChange := @EVTHDL_OnDataChange ) in welcher dieses Property benötigt wird, ist bei Aufruf von z.B. DAO.Open( Methode ist implementiert) wird zwar der Eventhandler TCL_Dao.ON_DataChange gerufen,
jedoch das Property OnDataChange welches in diesem Handler gerufen wird ist immer NIL.
Gibt es im Debugger die Möglichkeit, das dieser immer dann anhält, wenn das Property auf NIL gesetzt wird?
Ich habe eine kleine Test Version aus dem riesigen Programm erstellt. Aber hier funzt alles so wie erwartet. Kann somit also nicht mit einem Beispiel dienen.
Dennoch Sende ich mal dieses Beispiel. Im Coding ist es dokumentiert.
Hat jemand eine Idee wie ich diesen (meinen) Fehler ausfindig machen kann?
Viele Grüße
Lorca
Problem mit CallBack: ONDataChange
-
- Beiträge: 845
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Problem mit CallBack: ONDataChange
Erstmal verstehe ich nicht, dass du wohlüberlegte Konzepte über den Haufen werfen willst. Was möchtest du damit erreichen ?
Dein Datenmodul wird nach dem Formular erzeugt.
Drehe die Reihenfolge mal um. Besonders in großen Programmen ist es IMHO keine gute Idee (außer dem Hauptformular) die Formulare automatisch erstellen zu lassen. Damit hat man keine Kontrolle über die zeitlichen Abläufe der Erstellung.
Dein Datenmodul wird nach dem Formular erzeugt.
Drehe die Reihenfolge mal um. Besonders in großen Programmen ist es IMHO keine gute Idee (außer dem Hauptformular) die Formulare automatisch erstellen zu lassen. Damit hat man keine Kontrolle über die zeitlichen Abläufe der Erstellung.
Re: Problem mit CallBack: ONDataChange
Hallo zusammen
zunächst danke für Deine Antwort.
Jedoch werfe ich nicht "Wohlüberlegte Konzepte" über den Haufen
Vielmehr erweitre ich diese.
Aus meiner Sicht bilden TDataSource und TZQUERY (bzw. TZTable) eine Einheit und sollten auch genau deshalb "gewrapt" werden.
Ich habe keine Ahnung warum dieser Fehler aufgetreten ist. Nachdem ich meine Komponenten neu gemacht habe, hat es funktioniert.
Viele Grüße
Lorca
zunächst danke für Deine Antwort.
Jedoch werfe ich nicht "Wohlüberlegte Konzepte" über den Haufen
Vielmehr erweitre ich diese.
Aus meiner Sicht bilden TDataSource und TZQUERY (bzw. TZTable) eine Einheit und sollten auch genau deshalb "gewrapt" werden.
Ich habe keine Ahnung warum dieser Fehler aufgetreten ist. Nachdem ich meine Komponenten neu gemacht habe, hat es funktioniert.
Viele Grüße
Lorca