Das Problem habe ich gerade in einer
DLL...
Die
Query Komponente habe ich hier nicht auf der Form liegen, sondern die Komponente wird beim Start der
DLL erstellt...
Du weisst aber dass eine normale
DLL keine objektorientierte Schnittstelle hat?!
Deshalb kann man Delphi-Events nicht über eine
DLL-Grenze transportieren.
(Man kan evtl. schon, aber mit so hohem Aufwand und hässlichem Rumgemache dass es keinen Sinn ergibt)
Eine Anwendung besteht aus Code der sich häufig ändert (die Businesslogik) und Code der sich fast nie ändert (z.B. irgendwelche Bibliotheken).
Einer der größten Fehler den man in Delphi machen kann ist die Businesslogik aufzutrennen und in Exe und DLLs zu splitten.
In C# sieht das ganz anderst aus, aber in Delphi wird man damit nicht glücklich.
Ich versuch das mal mit einer Analogie zu verdeutlichen:
Stell dir vor du hast eine Elektronikplatine mit vielen Bauteilen und sägst sie mitten auseinander.
Die beiden Teilplatinen werden nun durch einzelne dünne Kabel mit 1 Meter Länge verbunden.
Ok, die Gesamtelektronik funktioniert noch ist aber viel teurer geworden.
Jetzt soll die elektronische Schaltung erweitert werden und so werden die vielen Leitungsverbindungen zur echten Falle.
Und jetzt vergleiche das mal mit einem PC-Motherboard und ihren PCI-Steckplätzen.
Die PCI-Schnittstelle ist genormt und nur deshalb funktioniert das Stecksystem.
Und daher:
niemals die Businesslogik auseinandereisen wenn es nicht von der Programmiersprache perfekt unterstützt wird oder grundsätzlich eine Multi-Tier-Anwendung entstehen soll.