Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Modales Fenster schließen bzw. verstecken (https://www.delphipraxis.net/1167-modales-fenster-schliessen-bzw-verstecken.html)

Chewie 27. Okt 2002 18:52


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:
Form2.ShowModal;
//Tu irgendwas
Form2.Close;
Kann ich das irgendwie mit der VCL machen, oder muss ich das mit der WinAPI lösen?

[edit=Daniel B]Verschoben nach Sonstiges; Hat nicht mit Komponentenentwicklung zutun![/edit]

Daniel B 27. Okt 2002 18:57

Hallo,

Du hast in Unit2 "uses Unit1;" vergessen;

Grüsse, Daniel :hi:

Chewie 27. Okt 2002 19:00

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.

Daniel B 27. Okt 2002 19:13

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:

Chewie 27. Okt 2002 19:17

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?

Daniel B 27. Okt 2002 19:20

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:

Chewie 27. Okt 2002 19:25

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:

sakura 28. Okt 2002 08:59

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.

d3g 28. Okt 2002 09:01

Hi Chewie,

wenn du einfach nur einen Splashscreen einbauen wolltest, kannst du es ja so machen:

Code:
Enabled := False;
Form2.Show;
// Berechnungen
Form2.Close;
Enabled := True;
MfG,
d3g


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 Uhr.

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