Autor |
Beitrag |
Uli Schoch
      
Beiträge: 81
|
Verfasst: Mo 25.04.11 15:16
Hallo
Ich habe eine Anwendung geschrieben (eine DCF77-Uhr) die ich im Autostart aufrufe. Sie zeigt dann immer die korrekte Zeit an. Damit ich diese Anwendung nicht aus Versehen schliesse, sollte sie nicht in der Taskleiste angezeigt werden. Kann man das machen? Habe immer noch Delphi3.
Gruss
Uli
Moderiert von Narses: Topic aus Sonstiges (Delphi) verschoben am Mo 25.04.2011 um 22:54
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 25.04.11 16:48
Dafür musst du ShowWindow auf Application.Handle anwenden. Denn bei den alten Delphiversionen liegt nicht das Fenster selbst in der Taskleiste, sondern das versteckte Application-Fenster. Das merkt man auch daran, dass die Taskleistenvorschau, die es ab Vista gibt, mit Delphiversionen < 2007 nicht funktioniert.
|
|
Uli Schoch 
      
Beiträge: 81
|
Verfasst: Mo 25.04.11 19:02
Salü
Welchen Parameter muss ich ShowWindow übergeben? In der Hilfe sind die Parameter aufgezählt, ich sehe aber keinen, der die Anwendung in der Taskleiste unterbindet.
Gruss
Uli
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 25.04.11 19:08
Naja, du hast Recht, dass SW_HIDE zum Verstecken dienen könnte, sieht man dem Namen wirklich gar nicht an... Delphi-Quelltext 1:
| ShowWindows(Application.Handle, SW_HIDE); |
|
|
Uli Schoch 
      
Beiträge: 81
|
Verfasst: Di 26.04.11 09:42
Salü
Mit SW_Hide gehts nicht. Ich habe folgende Zeile in der Methode FormCreate:
ShowWindow(Application.Handle,SW_HIDE);
Oder muss die an einem anderen Ort stehen? Diese Zeile bewirkt gar nichts, das Form und der Taskleisteneintrag sehen aus wie ohne diese Zeile.
Gruss
Uli
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 26.04.11 09:53
Moin!
Könnte im FormCreate zu früh sein, probier´s mal im FormShow der MainForm.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 26.04.11 10:00
Uli Schoch hat folgendes geschrieben : | Oder muss die an einem anderen Ort stehen? |
Bingo. Das kannst du auch selbst sehr leicht herausfinden:
Mach einfach einen Haltepunkt auf die Zeile in FormCreate, dann wirst du sehen, dass an der Stelle der Taskleisteneintrag noch nicht existiert. Der wird erst bei Application.Run erstellt.
Deshalb hat Narses absolut Recht mit OnShow. 
|
|
Gerd Kayser
      
Beiträge: 632
Erhaltene Danke: 121
Win 7 32-bit
Delphi 2006/XE
|
Verfasst: Di 26.04.11 10:11
jaenicke hat folgendes geschrieben : | Das merkt man auch daran, dass die Taskleistenvorschau, die es ab Vista gibt, mit Delphiversionen < 2007 nicht funktioniert. |
Das kann ich hier so nicht bestätigen. Programme, die mit D7 und D2006 erstellt wurden, werden hier korrekt in den kleinen Vorschaufenstern unter Windows 7 32-Bit dargestellt. Mit Vorschaufenstern meine ich hier die Anzeigen, wenn man mit der Maus über die Taskleisteneinträge drüber fährt oder wenn man Alt + Tab gedrückt hält.
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 26.04.11 10:22
Dann minimiere die Fenster einmal.
Wenn das Fenster auf dem Bildschirm angezeigt wird, benutzt Windows einfach den aktuellen Fensterpuffer für die Vorschau. Wenn es minimiert ist, geht es aber über das Handle. Und das ist bis Delphi 2006 eben leider das des versteckten Application-Fensters, so dass du nur das Icon der Anwendung angezeigt bekommst.
|
|
Gerd Kayser
      
Beiträge: 632
Erhaltene Danke: 121
Win 7 32-bit
Delphi 2006/XE
|
Verfasst: Di 26.04.11 10:27
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 26.04.11 10:33
Stimmt, Windows 7 wurde offenbar entsprechend geändert. Unter Vista gab es das Problem, und ich habe seitdem in Delphi 2006 immer automatisch einen Fix eingebaut. Daher habe ich das unter Windows 7 nie wieder getestet, insbesondere weil es mit XE ohnehin korrekt funktioniert.
|
|
Uli Schoch 
      
Beiträge: 81
|
Verfasst: Di 26.04.11 13:32
Salü
Die Zeile "ShowWindow(Application.Handle,SW_HIDE);" in FormActivate verschoben, jetzt gehts, vielen Dank. Das Symbol der Anwendung blinkt ganz kurz auf in der Taskleiste. Ich habe leider vergessen zu sagen, dass ich noch Windows XP verwende. Alles ein bisschen alte, aber es läuft noch!
Gruss
Uli
|
|