![]() |
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 |
Re: alle activemdichilds schließen funktioniert nicht
Durch den wechsel hat sich ja activemdichild geändert.
|
Re: alle activemdichilds schließen funktioniert nicht
Rechts, links, oben, unten?
|
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 |
Re: alle activemdichilds schließen funktioniert nicht
Wenn es geschlossen ist, wird es nicht aktiv
|
Re: alle activemdichilds schließen funktioniert nicht
profil wird ja richtig geschlossen.
mit
Delphi-Quellcode:
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.
showmessage(main.ActiveMDIChild.Caption);
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 --- |
Re: alle activemdichilds schließen funktioniert nicht
OMG!
|
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..... |
Re: alle activemdichilds schließen funktioniert nicht
Vielleicht ist er ein religiöser Mensch :zwinker:
|
Re: alle activemdichilds schließen funktioniert nicht
Wohl eher ein
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz