![]() |
Form und Taskbar
Hallo,
Bin weiterhin am Umbau von Delphi 6 nach Delphi 2007. Bin nun beim Fensterhandling angelangt, dies hat irgendwie viele Änderungen seit D6 spendiert bekommen. Nun gibt es ja die neue Einstellung MainFormOnTaskbar (Gott weiss, wieso die Einstellung standardmäßig auf false steht ...). Damit hab ich es geschafft, meinem Hauptformular wieder einen Taskbar-Eintrag zu spendieren. Nun hab ich aber einen Laden-Bildschirm (Splash-Screen) beim starten, bevor das MainForm angezeigt wird. Dieser kriegt nun neuerdings keinen Taskbar-Eintrag mehr. Ist ja halt nicht das MainForm, also wird nichts angezeigt ... Nun gut, hab ich dem Formular mit CreateParams und
Delphi-Quellcode:
einen eigenen Taskbareintrag verpasst.
Params.ExStyle:=Params.ExStyle or WS_EX_APPWINDOW;
Schön und gut: nun hab ich aber auch eine Anwendung die nur mit einem Tray-Icon läuft. Wenn ich mit einer D6-compilierten Version über das Popup des Tray-Icons ein Formular öffne, dann bekomme ich den Taskbar-Eintrag vom MainForm angezeigt (mit dem Programmnamen als Caption). Mit der D2007 compilierten Version kommt gar kein Taskbar-Eintrag ... :( Nun kann ich natürlich ebenfalls den oben genannten Trick bei all den Formularen auch einbauen, dies hat aber für mich zwei sehr große Nachteile: 1. Jedes Formular würde einen neuen Taskbar-Eintrag erstellen, statt das alle unter einem liegen. 2. Die Taskbar-Einträge haben alle als Titel den Formular-Titel und nicht den Anwendungs-Titel. Hat eventuell jemand eine Idee? Übersehe ich irgendwas? Bin schon die Properties im TForm durchgegangen. Finde aber irgendwie nichts. Gruß, Steffen |
Re: Form und Taskbar
Keiner eine Idee? :(
|
Re: Form und Taskbar
Update #1 von D2007 schon installert?
|
Re: Form und Taskbar
ja, hat aber leider nichts geändert :(
|
Re: Form und Taskbar
Nochn versuch: keine einer Idee? Ich verzweifel langsam ^^
|
Re: Form und Taskbar
Zitat:
Sven |
Re: Form und Taskbar
oder man baut das von Delphi6 nach. Also ein eigenes Fensterhandle für den Taskbareintrag etc.
|
Re: Form und Taskbar
Zitat:
Sven |
Re: Form und Taskbar
hat er nicht, er hat einfach nur das Flag gesetzt damit das Formular einen Taskbareintrag bekommt.
Bei D6 war es noch so gemacht das TApplication ein unsichtbares Fenster ist welches den Taskbareintrag bereit stellt und somit auch eine andere caption haben kann als das mainform. |
Re: Form und Taskbar
hast recht, hab ich verwechselt. Ich meine trotzdem die Taskbareinträge pro Formular. Kann man deren Titel beinflussen?
|
Re: Form und Taskbar
nein, das ist windowssache. Und da ist es eben so das in der Taskleiste die Caption des Fensters angezeigt wird.
|
Re: Form und Taskbar
Und wie hat Borland das dann bei D6 geschafft, dass alle unterformulare auf den Taskbar-Eintrag von dem unsichtbaren Fenster reagierten?
Dann sollen die bei mir halt auf das MainForm Fenster reagieren. Muss doch irgendwie möglich sein, dass ich ein TrayIcon haben, welches Formulare öffnet die dann aber alle nur einen Taskbar-Eintrag haben und nicht jeder eins und dann auch noch mit Form-Titel ... |
Re: Form und Taskbar
das hat borland geschafft indem es beim Applicaiton-Window welches in der Taskleiste ist die Messages für WM_SYSCOMMAND etc. handelt und dabei auch das MainForm etc. ansteuert.
|
Re: Form und Taskbar
Ja, aber damit haben sie es doch nicht geschafft, dass, wenn man ein normales Formular öffnet (kein MainForm) und das MainForm unsichtbar ist, der Taskbar-Eintrag erscheint, oder?
|
Re: Form und Taskbar
So, bisschen weiter bin ich gekommen, aber so zufrieden bin ich damit nicht.
Zitat:
Nun musste ich aber feststellen, dass dies eigentlich nicht stimmen dürfte. MainFormOnTaskbar soll nicht heissen, dass es keinen Taskbar-Eintrag mehr gibt, sondern, dass das MainForm die Taskbar stellt und nicht das unsichtbare Form TApplication. Weiss Gott wieso mein Taskbar-Eintrag ganz verschwunden ist. (Schätzung/Ungetestet: Eventuell muss MainFormOnTaskbar explizit auf false gesetzt werden). Naja, kurzum: wenn ich MainFormOnTaskbar wieder auf false setze, haben meine Forms die aus dem TrayIcon geöffnet werden wieder alle den selben Taskbar-Eintrag. Find die Lösung halt nur nicht so gut, weil ich so nun nicht Vista voll unterstütze ... Versuche also immernoch eine bessere Lösung zu finden. Falls also jemand weiss, wie der Taskbar-Eintrag des MainForms für alle gelten kann, wäre ich sehr dankbar. ;) Gruß, Steffen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 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