Autor Beitrag
Uli Schoch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81



BeitragVerfasst: 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 user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mo 25.04.2011 um 22:54
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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...
ausblenden Delphi-Quelltext
1:
ShowWindows(Application.Handle, SW_HIDE);					
Uli Schoch Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 26.04.11 09:53 
Moin!

Könnte im FormCreate zu früh sein, probier´s mal im FormShow der MainForm. :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 26.04.11 10:00 
user profile iconUli Schoch hat folgendes geschrieben Zum zitierten Posting springen:
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 user profile iconNarses absolut Recht mit OnShow. ;-)
Gerd Kayser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Di 26.04.11 10:11 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 26.04.11 10:22 
Dann minimiere die Fenster einmal. :zwinker:

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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Di 26.04.11 10:27 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Dann minimiere die Fenster einmal. :zwinker:
Habe ich gerade gemacht. Die Darstellung ist immer noch korrekt. Ich habe sogar ein D2-Programm in den Tiefen meiner Festplatte ausgegraben. Und selbst da funktioniert es.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81



BeitragVerfasst: 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