Hallo
DP'ler,
Ich weiß nicht genau wie ich mein Problem beschreiben soll, in der Suche hab ich auch nichts passendes gefunden, aber ich probier es einfach mal:
Ich habe eine Hauptformular in einer Anwednung und ein Formular in einer
DLL.
Die
DLL wird dynamisch eingebunden. Mit einem Aufruf aus dem HauptFormular wird das
Dll-Formular zur Anzeige gebracht.
Das ist nicht weiter wild und funktoniert ganz gut.
Nun möchte ich, dass, wenn der Nutzer bei angezeigtem
DLL-Fenster auf das Fenster der Hostweundung klickt, die Hostwendung bzw. das Hauptformular den Fokus erhält, aber das
Dll-Fenster dennoch über dem Hauptforumlar liegen bleibt.
Dann sollen Dialoge, wie z.B. der OpenDialog oder eigene Dialoge (ShowModal) aus der Hostanwendung über dem
Dll-Fenster geöffnet werden und dabei das
Dll-Fenster weiterhin über dem Hauptforumlar liegen bleiben, so das es aussicht, dass wenn alles zusammen gehört.
Leider habe ich keinen Ansatzpunkt, wie ich das bewerkstelligen kann.
Die Eigenschaft fsOnTop für das
DLL-Fenster ist zu hart, da hier OpenDialogboxen oder ShowMessage-Boxen hinter dem
DLL-Fenster, quasi nicht sichtbar, angezeigt werden. Der User meint dann das Programm sei abgestürtzt.
Hier im Forum habe ich was gelesen, dass das Hauptforumlar das
Dll-Fenster als Kind erkennen kann/muß/soll...
Über das Manipulieren der Z-Order habe auch nachgedacht, aber wie geht das mit Delphi?
In einem
Handle-Tut von Luckie habe ich gelesen, dass man, wenn man das
Handle eines Fensters hat, mit dem Fenster alles anstellen kann. So hab ich dem
DLL-Fenster schon mal das
Handle des Hauptformulares beigebracht. Aber wie weiter ?
Ich hab mich versucht in das Deactivate des
Dll-Fenster einzuklinken, das das wird nur gefeuert bei einem Fokuswechsel innerhalb der
DLL. In der Hilfe zu Deactivate seht man könne im Deactivate des TApplication-Objektes feststellen, welche Anwendung den Fokus bekommen hat. Doch wie klinke ich mich dort ein?
Ich weiß nicht weiter.
Könnt ihr helfen?
Gruß
gmc