Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi alle activemdichilds schließen funktioniert nicht (https://www.delphipraxis.net/118233-alle-activemdichilds-schliessen-funktioniert-nicht.html)

Overclocker 3. Aug 2008 14:19


alle activemdichilds schließen funktioniert nicht
 
Hi,
folgende Procedur schließt mir immer ein aktuelles MDI Child Fenster:

Delphi-Quellcode:
while assigned(activemdichild)
do
activemdichild.free;//vorher close

Folgendes Szenario:

Aus der Main-MDI Form öffne ich ein MDI Child um eine Suche auszuführen (von Benutzern).
Beim Doppelklick auf das DBGrid wo alle Benutzer angezeigt werden, öffnet sich darüber ein neues MDI Child mit dem Profil des Benutzers.


Wenn ich jetzt links einen anderen Button anklicke, um ein ganz anderes MDI Child Fenster zu öffnen, führt er die Procedure (siehe oben) aus.
Allerdings schließt er mir immer nur 1 MDI Child Fenster (nämlich das mit dem Profil). Das Suchfenster wird nicht mehr angezeigt, existiert allerdings noch.
Wenn ich im OnClose des Profil diese Procedur mit einfüge, dann wird das Suchfenster auch RICHTIG geschlossen und es kommt zu keinem Fehler mehr beim nächsten Aufruf.

Jetzt die Frage: Wieso schließt er mir immer nur das oberste MDI CHild Fenster, wenn doch in der Procedure eine WHILE Schleife ist, die alle Childs schließen sollte?

Danke für die Hilfe

mkinzler 3. Aug 2008 14:24

Re: alle activemdichilds schließen funktioniert nicht
 
Durch den wechsel hat sich ja activemdichild geändert.

rotfc 3. Aug 2008 14:24

Re: alle activemdichilds schließen funktioniert nicht
 
Rechts, links, oben, unten?

Overclocker 3. Aug 2008 14:28

Re: alle activemdichilds schließen funktioniert nicht
 
@rotfc: :cheers: mdi childs sind bei mir auf der rechten seite, links ist die navigation :))

@mkinzler: das sich die reihenfolge ändert ist ja klar, da das profil ja dann weg ist müsste ja suchfunktion dann das active mdi child sein, aber wieso wird das nicht mitgeschlossen?
mit der while schleife müsste das doch so gehen :gruebel: hmmm

mkinzler 3. Aug 2008 14:29

Re: alle activemdichilds schließen funktioniert nicht
 
Wenn es geschlossen ist, wird es nicht aktiv

Overclocker 3. Aug 2008 14:32

Re: alle activemdichilds schließen funktioniert nicht
 
profil wird ja richtig geschlossen.
mit

Delphi-Quellcode:
showmessage(main.ActiveMDIChild.Caption);
gebe ich mir das aktive mdi child aus und es wird mir Profil ausgegeben und die Suchform wird allerdings nicht ausgegeben, d. h. es wird zwar nicht mehr angezeigt, aber es ist trotzdem noch vorhanden.

es ist nämlich folgendes problem:

wenn ich die suchfunktion nicht mit schließen lasse, dann kommt beim nächsten aufruf der suchfunktion ein fehler, wenn ich einen benutzer ansehen will (Zugriffsverletzung).
Es funktioniert nur, wenn ich beim 1. mal BEIDE Fenster (also Profil und Suche) schließe.


Problem gelöst:

anstatt dem activemdichild.free habe ich nun activemdichild.close eingefügt und jetzt funktioniert es.

bei denn mdichild fenster muss dann im onclose nur noch ein Free rein dann funktioniert es (und im profil befindet sich das freeandnil und gibt somit das objekt frei)

--- Problem gelöst ---

rotfc 3. Aug 2008 15:32

Re: alle activemdichilds schließen funktioniert nicht
 
OMG!

Overclocker 3. Aug 2008 16:57

Re: alle activemdichilds schließen funktioniert nicht
 
@rotfc: spar dir deine kommentare wenn du eh nicht helfen willst und gut ist, schon sehr "OMG" wenn man noch anfänger ist und sich noch nicht so auskennt....

leute gibts die wohl nix besseres zu tun haben wahnsin.....

mkinzler 3. Aug 2008 17:08

Re: alle activemdichilds schließen funktioniert nicht
 
Vielleicht ist er ein religiöser Mensch :zwinker:

extrem 3. Aug 2008 19:04

Re: alle activemdichilds schließen funktioniert nicht
 
Wohl eher ein weiterer sinnbefreiter Beitrag von ihm. :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz