![]() |
Probleme mit Verstecken und Anzeigen von Taskbar-Eintrag
Hallo,
ich hab mal ne Frage: ich habe mir mal eine TrayIcon-Komponente geschrieben, in der zwei Proceduren sind:
Delphi-Quellcode:
Mit "HideMainForm" kann man die MainForm verstecken und mit "ShowMainForm" die Form wieder anzeigen.
procedure TTrayIcon.ShowMainForm;
begin with Application do begin //maximieren Restore; //WindowState überschreiben If MainForm.WindowState = wsMinimized then MainForm.WindowState := wsNormal; //Haupt-Form anzeigen MainForm.Show; //in den Vordergrund bringen SetForegroundWindow(MainForm.Handle); //Taskbar-Icon anzeigen If not IsWindowVisible(Handle) then ShowWindow(Handle, SW_SHOW); end; end; procedure TTrayIcon.HideMainForm; begin with Application do begin //minimieren Minimize; //Haupt-Form verstecken MainForm.Hide; //Taskbar-Icon verstecken If IsWindowVisible(Handle) then ShowWindow(Handle, SW_HIDE); end; end; Wie man sieht, wird auch der TaskBar-Eintrag versteckt bzw. angezeigt. Das funktioniert auch (eigentlich). Wenn das Programm aber eine längere Zeit nicht angezeigt wird (also nur das TrayIcon sichtbar ist), dann wird beim nächsten ShowMainForm nur die MainForm angezeigt, nicht der Taskbar-Eintrag. Ich habe den Verdacht, dass es vielleicht was mit dem Bildschirmschoner oder ähnlichem zu tun hat. Kann mir da jemand helfen? Ach ja! Bitte keine Antworten wie: "Verwende doch einfach CoolTrayIcon oder die Indies oder so" - ich bleib bei meiner Compo |
Re: Probleme mit Verstecken und Anzeigen von Taskbar-Eintrag
Verwende doch einfach CoolTrayIcon oder die Indies oder so.
Nein, war nur n Scherz! Ich hab das Problem immer anders herum, das das Fenster in der Taskliste wieder erscheint. Versuch mal ShowWindow(Application.Handle, sw_Show); |
Re: Probleme mit Verstecken und Anzeigen von Taskbar-Eintrag
Was mir grad aufgefallen ist, dass die If-Abfrage "IsWindowVisible(Handle)" nicht immer true ist.
hab sie jetzt mal rausgeschmissen. Mal schauen was passiert... [edit] Doppelte Verneinung entfernt! [/edit] |
Re: Probleme mit Verstecken und Anzeigen von Taskbar-Eintrag
Zitat:
|
Re: Probleme mit Verstecken und Anzeigen von Taskbar-Eintrag
Zitat:
Bei ShowMainForm will man ja neben der Form auch den TaskBar-Eintrag sehen und bei HideMainform will man nichts mehr sehen. |
Re: Probleme mit Verstecken und Anzeigen von Taskbar-Eintrag
Ich hab das Problem, bei meinem Player, da will ich nix i nder Task-Bar haben, aber wenn sich das Video Fenster öffnet steht das Programm (zwar selten aber nervend) in der Task-Bar.
Wenns immer der Fall wäre und IsWindowVisible True eräbe würde ich das ja verstehen, aber so? :gruebel: |
Re: Probleme mit Verstecken und Anzeigen von Taskbar-Eintrag
versuch doch mal dort, wo du die mainform wieder anzeigst (Application.MainForm.Visible := true) doch den TaskBar-Eintrag nicht anzeigen zu lassen
Den Code zum verschwinden lassen bzw. anzeigen lassen des Taskbar-Eintrages hab ich von den Schweizern ![]() |
Re: Probleme mit Verstecken und Anzeigen von Taskbar-Eintrag
Ne, das MainForm bleibt ja sichtbar, das Video und das Playlist Fenser werden versteckt und gezeigt.
Sehe mir den Link mal an, Danke. Edit: Das mit ShowWindow & ShowWindowAsync hab ich schon mal probiert, half nix, egal bei welcher Windows Version. Aber seis drum, ich hab mich schon daran gewöhnnt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 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