Delphi-PRAXiS

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 Dialogbox bei Programmstart (https://www.delphipraxis.net/146978-dialogbox-bei-programmstart.html)

DelTurbo 30. Jan 2010 12:33


Dialogbox bei Programmstart
 
Hi,

ich möchte gerne eine "Ja/Nein" dialogbox beim starten des programms anzeigen. Im moment habe ich es in OnCreate drin. Aber dann sieht man leider nur den dialog nicht die form. Die kommt erst wenn man den dialog beantwortet hat.

Wo muss das rein? Oder geht das garnicht?

Danke im voraus

Luckie 30. Jan 2010 12:34

Re: Dialogbox bei Programmstart
 
Entweder in OnShow oder in OnPaint. Musst du mal ausprobieren. Allerdings musst du dir merken, ob er schon angezeigt wurde oder nicht, da diese Ereignisse öfters ausgelöst werden können.

toms 30. Jan 2010 12:36

Re: Dialogbox bei Programmstart
 
z.B. im OnActivate (zudem evtl. ein Überprüfung machen, damit die Dialogbox kein weiteres mal angezeigt wird.)

@Luckie: Im OnShow wird die Form noch nicht angezeigt.

Luckie 30. Jan 2010 12:37

Re: Dialogbox bei Programmstart
 
OK, dann nicht OnShow, ich muss das auch immer ausprobieren.

mkinzler 30. Jan 2010 12:38

Re: Dialogbox bei Programmstart
 
Oder suche nach
Delphi-Referenz durchsuchenSplashScreen

Luckie 30. Jan 2010 12:40

Re: Dialogbox bei Programmstart
 
Genau das will er ja nicht. ;)

DelTurbo 30. Jan 2010 12:43

Re: Dialogbox bei Programmstart
 
Hui,

danke. Also OnActivate nutzen und schauen ob es das erstemal ist das ich da durchlaufe. Wenn ja zeig ich die box an, sonst nicht.

Ich dachte es gibt da sowas wie oncreate. Aber ein flag werde ich noch unterbingen können :-D

rollstuhlfahrer 30. Jan 2010 13:26

Re: Dialogbox bei Programmstart
 
ich nutze dafür immer nen Timer mit einem Intervall von 1 (im OI: Enabled: True). Dieser Timer löst direkt nach dem vollständigen Anzeigen des Forms aus und du kannst dann deine Message-Box darüber legen. Allerdings musst du beachten, dass es sich um einen Timer handelt, der als allererstes mal abgeschaltet werden muss, um nicht mehrfach die MessageBox aufzurufen.

Bernhard

DelTurbo 30. Jan 2010 13:41

Re: Dialogbox bei Programmstart
 
Das mit dem Timer hatte ich auch schon überlegt. Das wär mein letzter ausweg gewesen.

Trotzdem danke

Luckie 30. Jan 2010 14:48

Re: Dialogbox bei Programmstart
 
Warum ein Timer, wenn man schon vorhanden Ereignisse nutzen kann?

mkinzler 30. Jan 2010 14:50

Re: Dialogbox bei Programmstart
 
Zitat:

Zitat von Luckie
Warum ein Timer, wenn man schon vorhanden Ereignisse nutzen kann?

Weil manche es einfach dreckig mögen :mrgreen:

Luckie 30. Jan 2010 15:03

Re: Dialogbox bei Programmstart
 
Du kleines Schweinchen, du. :mrgreen:

Bernhard Geyer 30. Jan 2010 15:37

Re: Dialogbox bei Programmstart
 
Sende an das Hauptformular im OnCreate eine User-Message. Diese wird erst ankommen wenn das Hauptformular sichbar wurde.

toms 30. Jan 2010 20:37

Re: Dialogbox bei Programmstart
 
Zitat:

Zitat von Bernhard Geyer
Sende an das Hauptformular im OnCreate eine User-Message. Diese wird erst ankommen wenn das Hauptformular sichbar wurde.

Wäre natärlich eine Möglichkeit, doch warum so, wenn man schon vorhandene Ereignisse nutzen kann?

himitsu 30. Jan 2010 20:57

Re: Dialogbox bei Programmstart
 
Zitat:

Zitat von toms
Zitat:

Zitat von Bernhard Geyer
Sende an das Hauptformular im OnCreate eine User-Message. Diese wird erst ankommen wenn das Hauptformular sichbar wurde.

Wäre natärlich eine Möglichkeit, doch warum so, wenn man schon vorhandene Ereignisse nutzen kann?

Nja, so müßte man weitere Aufrufe nicht blocken.
Die anderen möglichen Events werden nicht nur einmal, nach dem Create, aufgerufen.

Nur aufpassen muß man, daß da im Create kein Application.ProcessMessages oder Dergleichen aufgerufen wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 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