Wow, die haben in D12 ja echt mal was verändert.
Der SplashScreen ist jetzt eine eigene Form-Klasse.
http://fnse.de/Delphi-in-Taskleiste.mp4 (oder siehe Anhang)
http://fnse.de/Delphi-in-Taskleiste2.mp4
Wollte erst die 12, aber dann fiel mir ein, dass man bei der 11 länger etwas von sieht.
Jetzt nur noch das ShowInTaskBar auf True und vielleicht noch ein TTaskbar drauf.
Muß ich wohl mal einen neuen FeatureRequest erstellen.
Selbst ein halbwegs frisches D12, noch ohne Unmassen an Erweiteurngen und Fremdkomponenten, braucht hier beim Beenden schon 10-15 Sekunden, bis es wirklich weg ist, nachdem
IDE-Fenster und Taskbar-Button verschwunden sind.
OK, es war "erstmal" einfacher, als gedacht.
OnShow wird "aktuell" von Emba nicht verwendet, also hab ich mich dort angehängt.
(hab da eine billige Assigned-Prüfung mit Warnmeldung, falls die das ändern)
Also, für D11.3 und D12.1 hab ich's nun erstmal am Laufen.
- Kompilieren (oder BPL aus ZIP)
- das Package nicht installieren
- für's Beenden ist es egal
- aber beim Start reagiert es als IDE-Package besser (Known IDE Packages)
- falls als normales Package, mit installieren, vorher das DEFINE in der PAS umstellen (Known Packages)
- dann in der Registry das Package eintragen (nur wenn nicht "installiert")
- Delphi 12
HKEY_CURRENT_USER\Software\Embarcadero\BDS\23.0\Known IDE Packages
C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\IsDelphiRunning.bpl
- Delphi 11
HKEY_CURRENT_USER\Software\Embarcadero\BDS\22.0\Known IDE Packages
C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\IsDelphiRunning.bpl
- Delphi 10 wird eventuell auch funktionieren
davor muß aber garantiert noch bissl was angepasst werden
- und sich freuen, dass Delphi in der Taskleiste nun endlich sagt ob und was es macht
- .
- Hab aber keine Ahnung, warum beim Beenden das Icon so lange braucht (hab es ja direkt beim RegisterClass via LoadIcon zugewiesen),
aber OK, es kommt und zu sehn ist ja dennoch was ... und das war die Hauptsache.
- Beim Start ist es auch fast sofort da (der Timer braucht halt bissl was ... muß ja auf's Application.ProcessMessages warten ),
aber da es nun eine eigene Form ist, könnte ich mich in die Klasse Hooken (Create CreateWnd oder DoShow)
Da ich beim Starten den SplashScreen dazu bringe sich in der Taskleiste zu zeigen, muß ich halt warten, bis jener da ist.
Ich könnte, wie beim Beenden, einen eigenen Eintrag erstellen, aber so verschwindet er automatisch, sobald der SplashScreen durch die Hauptform ersetzt wird.
Außerdem ist damit in der AeroPreview auch das Bild des SplashScreen drin.