Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Taskleiste: Button fürs Programm wieder anzeigen lassen? (https://www.delphipraxis.net/61501-taskleiste-button-fuers-programm-wieder-anzeigen-lassen.html)

Helmi 22. Jan 2006 11:20


Taskleiste: Button fürs Programm wieder anzeigen lassen?
 
Hallo,

ich hab folgenden Code um keinen Button in der Taskleiste für ein Programm zu erhalten:
Delphi-Quellcode:
procedure TTrayIcon.OnShow(Sender: TObject);
begin
  with Application do
    begin
      ShowWindow(Handle, SW_HIDE);
      SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or
                     WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
      ShowWindow(Handle, SW_SHOW);
    end;
Nur wie kann ich jetzt den Button auch wieder anzeigen lassen?

Khabarakh 22. Jan 2006 11:43

Re: Taskleiste: Button fürs Programm wieder anzeigen lassen?
 
WS_EX_APPWINDOW wieder einfügen :wink: ?

Helmi 22. Jan 2006 11:54

Re: Taskleiste: Button fürs Programm wieder anzeigen lassen?
 
mmh - ich weiss jetzt nicht ob ich das so gemacht habe wie du es meintest:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  with Application do
    begin
      SetWindowLong(Handle, GWL_EXSTYLE, WS_EX_APPWINDOW);
    end;
end;
Jedenfalles funktioniert das nicht

CalganX 22. Jan 2006 12:10

Re: Taskleiste: Button fürs Programm wieder anzeigen lassen?
 
Hi,
du musst schon die alten WindowLongs mit GetWindowLong wieder verwenden. Außerdem musst du ShowWindow mit WS_SHOW erneut aufrufen (zumindest habe ich das bisher immer so beobachtet).

Chris

Helmi 22. Jan 2006 12:14

Re: Taskleiste: Button fürs Programm wieder anzeigen lassen?
 
Zitat:

Zitat von Chakotay1308
Hi,
du musst schon die alten WindowLongs mit GetWindowLong wieder verwenden. Außerdem musst du ShowWindow mit WS_SHOW erneut aufrufen (zumindest habe ich das bisher immer so beobachtet).

Chris

Hallo,

danke für den Tip.

Ich habs jetzt so gemacht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  with Application do
    begin
      ShowWindow(Handle, SW_HIDE);
      SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or
                     WS_EX_APPWINDOW);
      ShowWindow(Handle, SW_SHOW);
    end;
end;
und so funktionierts! :thumb:

Vielen Dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz