Autor Beitrag
a.C.k
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 93

WIN 2000
Delphi 6 Enterprise ; Delphi 7 Studio
BeitragVerfasst: Mi 15.01.03 16:20 
Hallo allerseits.
Ich bin auf der Suche nach einer Lösung bezüglich eines "fsMDIForm".

Ich brauche ein Ereignis welches reagiert wenn ein MDI-Child geöffnet wird. Das Problem ist das ich es auf dem MDIForm brauche. OnActivate der ähnliches beim MDIChild hilft mir leider nicht weiter :(.

Festellen ob ein Child geöffnet ist ist ja mit MDIChildCount kein Problem. Leider fehlt mir das passende Erignis auf dem Hauptformular.

Vieleicht hat einer von euch eine Lösung für dieses Problem.

_________________
Wer nicht gerne denkt, sollte wenigstens von Zeit zu Zeit seine Vorurteile neu gruppieren.
derDoc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 623

Win Vista Prof
D2007 Prof
BeitragVerfasst: So 19.01.03 19:52 
Kannst du mal schreiben, wofür du das Ereignis auf dem Hauptfenster brauchst. Wenn es mit deinen Plänen vereinbar ist könnte man auf ein MDIChildONCreate warten und vom MDIChild am Hauptfenster ein anderes Ereignis auslösen, sodass du wieder an ein Ereignis kommst. Aber ohne deine Absicht zu kennen ist das schwer zu sagen.

_________________
MfG derDoc
There are only 10 types of people: those who understand binary and those who don't.
a.C.k Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 93

WIN 2000
Delphi 6 Enterprise ; Delphi 7 Studio
BeitragVerfasst: Mo 20.01.03 01:13 
Die sache ist die... Wir proagramieren an einer Anwendung die weit über 50 Childs besitzt.
Gewisse Steuerbuttons dürfen nur activiert sein, wenn ein Child geöffnet ist und müssen auch inaktiv sein, wenn keines geöffnet ist.

Meine Hoffnung war, dass ich nicht in jedem Child zusätlichen Source einbauen muss. Zumal ich auch nicht bei jedem die Berechtigung habe, in dem Source rumzudoktoren.

Da die funktionalitäten die angesprochen werden sollen auf dem Hauptformular abgearbeitet werden hoffte ich, dass es da irgendwas gibt :(

Da das MDI-Hauptformular ja die Mutte der Childs ist, dachte ich dass es da bestimmt ein Ereignis gibt....

Naja, muss ich wohl drumrum bauen...

_________________
Wer nicht gerne denkt, sollte wenigstens von Zeit zu Zeit seine Vorurteile neu gruppieren.
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 20.01.03 11:54 
Hallo,

Das ist natürlich Problematisch.
Wo werden die MDI-Childs denn erzeugt?
Ist das eine zentrale Funktion, in der du vielleicht ansetzen könntest?

Ansonten würde mir nur eine regelmäßige Überprüfung der MIDIChilds einfallen. Also eine Timer Lösung. Dies währe natürlich ziemlich ungünstig.

Generell sollte man sein Programm, so anlegen, dass die MDI-Childs nicht direckt von tForm abgeleitet werden sondern von einer eigenen Mutterklasse, welche von tForm abgeleitet wurde. Dann kannst du solche änderungen zentral in dieser Vorfahrklasse durchführen und sie ist (nach dem neukompilieren) in allen Clients enthalten. Wenn eine solche Mutterklasse aber nicht vorhanden ist, und du in den Quelltexten der Clients nichts ändern darfst (also auch keine neue Mutterklasse eintragen) fällt diese Lösung für dich flach.

Gruß
Klabautermann
a.C.k Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 93

WIN 2000
Delphi 6 Enterprise ; Delphi 7 Studio
BeitragVerfasst: Mo 20.01.03 15:21 
Vielen Dank für deinen Lösungsansatz. Ich werde ihn meinen Kollegen erleutern. Vieleicht lässt sich da was machen ;).

_________________
Wer nicht gerne denkt, sollte wenigstens von Zeit zu Zeit seine Vorurteile neu gruppieren.
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Di 21.01.03 01:20 
Hallo,

in meiner Anwendung muss ich auch überprüfen ob MDI-Fenster geöffnet sind und entsprechende Buttons aktivieren bzw. deaktivieren. Ich nehme dazu das OnIdle-Event des Hauptfensters. Hat bis jetzt immer ganz gut funktioniert!

Gruß
TINO