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 Form und Taskbar (https://www.delphipraxis.net/93613-form-und-taskbar.html)

MasterEvil 8. Jun 2007 10:14


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:
Params.ExStyle:=Params.ExStyle or WS_EX_APPWINDOW;
einen eigenen Taskbareintrag verpasst.

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

MasterEvil 11. Jun 2007 07:53

Re: Form und Taskbar
 
Keiner eine Idee? :(

Bernhard Geyer 11. Jun 2007 07:55

Re: Form und Taskbar
 
Update #1 von D2007 schon installert?

MasterEvil 11. Jun 2007 08:01

Re: Form und Taskbar
 
ja, hat aber leider nichts geändert :(

MasterEvil 13. Jun 2007 09:49

Re: Form und Taskbar
 
Nochn versuch: keine einer Idee? Ich verzweifel langsam ^^

sh17 13. Jun 2007 10:09

Re: Form und Taskbar
 
Zitat:

Zitat von MasterEvil
2. Die Taskbar-Einträge haben alle als Titel den Formular-Titel und nicht den Anwendungs-Titel.

Dafür hätte ich auch gerne eine Lösung, auch für D6. Kann man den Titel irgendwie beeinflussen?

Sven

SirThornberry 13. Jun 2007 10:36

Re: Form und Taskbar
 
oder man baut das von Delphi6 nach. Also ein eigenes Fensterhandle für den Taskbareintrag etc.

sh17 13. Jun 2007 10:38

Re: Form und Taskbar
 
Zitat:

Zitat von SirThornberry
oder man baut das von Delphi6 nach. Also ein eigenes Fensterhandle für den Taskbareintrag etc.

hat er ja (oder?). Nur dann wird eben die Caption vom Formular in der Taskbar angezeigt. Halt blöd.

Sven

SirThornberry 13. Jun 2007 10:44

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.

sh17 13. Jun 2007 10:50

Re: Form und Taskbar
 
hast recht, hab ich verwechselt. Ich meine trotzdem die Taskbareinträge pro Formular. Kann man deren Titel beinflussen?

SirThornberry 13. Jun 2007 10:55

Re: Form und Taskbar
 
nein, das ist windowssache. Und da ist es eben so das in der Taskleiste die Caption des Fensters angezeigt wird.

MasterEvil 13. Jun 2007 12:01

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 ...

SirThornberry 13. Jun 2007 12:18

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.

MasterEvil 13. Jun 2007 12:24

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?

MasterEvil 14. Jun 2007 14:12

Re: Form und Taskbar
 
So, bisschen weiter bin ich gekommen, aber so zufrieden bin ich damit nicht.

Zitat:

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.
Als ich das erste mal mein Compilat getestet hatte, hatte es wirklich keinen Taskbar-Eintrag.
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 03:19 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