Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Probleme mit Verstecken und Anzeigen von Taskbar-Eintrag (https://www.delphipraxis.net/78548-probleme-mit-verstecken-und-anzeigen-von-taskbar-eintrag.html)

Helmi 6. Okt 2006 19:15


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:
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;
Mit "HideMainForm" kann man die MainForm verstecken und mit "ShowMainForm" die Form wieder anzeigen.

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

Sunlight7 6. Okt 2006 20:08

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);

Helmi 6. Okt 2006 20:11

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]

Sunlight7 6. Okt 2006 20:43

Re: Probleme mit Verstecken und Anzeigen von Taskbar-Eintrag
 
Zitat:

Zitat von Helmi
Was mir grad aufgefallen ist, dass nicht immer die If-Abfrage "IsWindowVisible(Handle)" nicht immer true ist.

Stimmt, bei mir ist sie oft False, aber das Fenster in der Taskbar ist sichtbar, da hilft dann nur das Fenster zu zeigen und neu zu verstecken.

Helmi 6. Okt 2006 20:50

Re: Probleme mit Verstecken und Anzeigen von Taskbar-Eintrag
 
Zitat:

Zitat von Sunlight7
Stimmt, bei mir ist sie oft False, aber das Fenster in der Taskbar ist sichtbar, da hilft dann nur das Fenster zu zeigen und neu zu verstecken.

Wobei ich mir überlegt hab, dass man die If-Abfrage wegfallen lassen kann.

Bei ShowMainForm will man ja neben der Form auch den TaskBar-Eintrag sehen und bei HideMainform will man nichts mehr sehen.

Sunlight7 6. Okt 2006 21:12

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:

Helmi 6. Okt 2006 21:32

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 Link

Sunlight7 6. Okt 2006 21:54

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