Autor Beitrag
Jojojoxx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 386



BeitragVerfasst: Sa 04.10.08 18:13 
Hallo!

Ich habe ein Programm, dass mittels CoolTrayIcon im Tray läuft und keinen Eintrag in der Taskleiste anzeigt. Nun soll eine Form (Nicht Hauptformular, als Beispiel "Form2") angezeigt werden, und sobald diese aufgerufen wird erscheint ein Eintrag "Form2" in der Taskleiste. Wie kann ich den verhindern? Den Eintrag des Hauptformulars habe ich mittels
ausblenden Quelltext
1:
ShowWindow(Application.Handle,SW_HIDE);					

ausblenden können, allerdings klappt das bei Form2 nicht. Auch dann nicht, wenn ich "Application.Handle" durch "Form2.Handle" ersetze
Danke euch für die Hilfe!
mfg

Jojo.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Sa 04.10.08 18:26 
Hast du die Codezeile auch schon mal in verschiedenen Ereignissen bzw. Positionen ausprobiert? Möglicherweise wird der Button (erst) wieder angezeigt, nachdem du ihn manuell ausgeblendet hast.
Jojojoxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 386



BeitragVerfasst: Sa 04.10.08 18:30 
Ja, ich habe die Zeile im OnShow Ereignis und VOR dem eigentlichen Form2.Show Aufruf ausprobiert.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Sa 04.10.08 18:51 
Ich habe ein minimales Beispielprojekt erstellt, und der Taskbar-Button bleibt bei mir versteckt. Vielleicht liegt es am Betriebssystem (Windows 2000), oder du hast noch zusätzlichen Code, der stört.

Ich habe mein Projekt angehängt, du könntest es mal ausprobieren.
Einloggen, um Attachments anzusehen!
Jojojoxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 386



BeitragVerfasst: Sa 04.10.08 20:35 
Ich habe dein Projekt mal so angepasst wie bei mir das Programm aussieht.
Wenn du es nun startest und das Programm minimierst erscheint ein Tray-Symbol.
Wenn du nun aus dem minimierten Programm über das Tray-Menü (Rechtsklick auf Tray-Icon) auf Form2.show klickst, erscheinen die Taskbar-Einträge. Diese beiden Einträge möchte ich verhindern.
mfg

Jojo
Einloggen, um Attachments anzusehen!
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 06.10.08 08:30 
Versuch mal
ausblenden Delphi-Quelltext
1:
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) and not WS_EX_APPWINDOW);					

im OnCreate von Form2.
Jojojoxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 386



BeitragVerfasst: Mo 06.10.08 11:49 
Bringt leider nichts.
Der Eintrag von Form2 wird immer noch in der Taskleiste angezeigt :(
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19335
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 06.10.08 15:26 
Auf jeden Fall hast du einen Denkfehler drin: Du lässt Form2 automatisch erstellen, und benutzt Form2 auch mit Show etc. einfach so, aber du entfernst es beim Schließen aus dem Speicher...
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Action := caFree;
end;
Was die Taskleistenschaltfläche angeht schaue ich gleich nochmal.