Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi SplashScreen / Timer / Messages ohne Fenster (https://www.delphipraxis.net/14393-splashscreen-timer-messages-ohne-fenster.html)

rantanplan 8. Jan 2004 12:33


SplashScreen / Timer / Messages ohne Fenster
 
Hallo :dance: !

Ist es möglich einem Objekt, welches kein Fenster hat, eine Nachricht zu schicken ??

Ich möchte einen SplashScreen für eine Anwendung einblenden, die verschiedene DLLs linkt und andere Sachen initialisiert.
Bevor Application.Run ausgeführt wird, verarbeite ich noch andere Sachen, die unabhängig von der SplashScreen-Initialisierung sind (nebenläufig sozusagen)
Jetzt will ich aber nach Bedarf mit oder ohne SplashScreen starten.

Was funktioniert hat: ein TForm (=SplashScreen) hat einen User-Message WM_USERINIT - Handler der nach und nach mehr Dinge initilisiert (sich selbst 'posted'), während das Hauptprogramm (in ... .dpr) sich nach Application.Run vorarbeitet.

Was nicht mehr funktioniert: wenn ich den SplashScreen verstecke werden keine Nachrichten mehr verarbeitet. Dann habe ich alles in Initialiasierung ('Startup' = einfache class) und SplashScreen (=immer noch TForm) (d.h. zwei Klassen) aufgeteilt, damit ich den Splash weglassen kann.

Ich habe versucht die fensterlose initalisierungs-klasse über API-Timer zum Hauptprogramm nebenläufig zu machen. Diese Timer springen aber erst ab Application.Run an. Messages wurden vorher schon verarbeitet.

Das heisst, wie kann ich die Message-Technik für meine fensterlose Klasse verwenden ?

Ich hoffe, das war nicht alles zu verwirrend.

Danke im voraus!

Olli 1. Jul 2005 13:37

Re: SplashScreen / Timer / Messages ohne Fenster
 
Fensternachrichten heißen nicht umsonst so ;) ... ist also etwas sinnlos ohne Fenster. Aber es geht dennoch. Dazu brauchst du einen separaten Thread mit eigener Message-Loop. An den kannst du dann auch Nachrichten "posten":

MSDN-Library durchsuchenPostThreadMessage


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