![]() |
Modales Fenster schließen bzw. verstecken
Ich will ein Fenster für eine bestimmte Zeit modal anzeigen und anschließend wieder schließen. Leider geht das mit folgendem Code nicht:
Code:
Kann ich das irgendwie mit der VCL machen, oder muss ich das mit der WinAPI lösen?
Form2.ShowModal;
//Tu irgendwas Form2.Close; [edit=Daniel B]Verschoben nach Sonstiges; Hat nicht mit Komponentenentwicklung zutun![/edit] |
Hallo,
Du hast in Unit2 "uses Unit1;" vergessen; Grüsse, Daniel :hi: |
Ich hätt mein Probblem wohl präziser beschreiben müssen.
Kompilieren lässt sich das ganze, nur wird das Fenster beim Betrieb eben nicht geschlossen. |
Hi,
kann ja gar nicht gehen. Du öffnest es ja Modal, somit musst DU erst aus Form2 was machen, bzw. schliessen, damit es weiter geht, bei Modal ist nunmal nur Form2 aktiv. Machst Du es mit Form2.Show; dann wird es gehen. Grüsse, Daniel :hi: |
Hmm, Form1 kann gar nichts machen, d.h. es empfängt z. B. keine Nachrichten mehr. Und es sendet keine. Klar, dass dann Form2.Close nicht geht und auch klar, dass meine Idee mit der eigenen Nachricht an die Nachrichtenschleife nicht geht.
Das Problem ist: Wie kann Form1 der Form2 etwas mitteilen? Zuvor stellt sich aber die Frage, ob Form1 überhaupt die Berechnung fortführt, während Form2 modal angezeigt wird. Kann mir das jemand beantworten? |
Hi,
ich hintergrund wird da nicht mehr viel Laufen. Wenn Du folgendes machst: Form2.ShowModal; ShowMessage('Hallo'): Form2.Close; dann kommt die Message erst wenn Du selbst Form2 geschlossen hast und nicht vorher wie Du es haben willst. Grüsse, Daniel :hi: |
Sieht so aus, als würden wirklich alle Berechnungen von Form1 pausiert, während Form2 modal angezeigt wird. Wenn ich damit Recht hab, dann kann ich da, was ich vorhatte, vergessen. Na ja, war sowieso nur Kosmetik :mrgreen:
|
Mach anstelle des ShowModal einen Aufruf zu Show.
Im Ereignis OnCloseQuery gibst Du False zurück, bis Du selbst Close ausführen möchtest. Nicht ganz das Gleiche, aber schon recht nah. |
Hi Chewie,
wenn du einfach nur einen Splashscreen einbauen wolltest, kannst du es ja so machen:
Code:
MfG,
Enabled := False;
Form2.Show; // Berechnungen Form2.Close; Enabled := True; d3g |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 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-2025 by Thomas Breitkreuz