Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Wie kann die "Desktop anzeigen" Funktion umgehen (https://www.delphipraxis.net/13914-wie-kann-die-desktop-anzeigen-funktion-umgehen.html)

ustra 29. Dez 2003 09:59


Wie kann die "Desktop anzeigen" Funktion umgehen
 
Hallo,

ich habe ein Formular mittels SHAppBarMessage als Tasleiste registriert. Damit nun das auch eine wirklich vollwertig Taskleiste ist, muss ich es noch schaffen, dass mein formular nicht vom Desktop verschwindet,sobald der Userauf Desktop anzeigen geht. Gibt es da eine Möglichkeit dem System zu sagen, dass er mein bestimmtes Formular nicht minimiert?

Beste Grüße
Ulrich

Jens Schumann 29. Dez 2003 10:15

Re: Wie kann die "Desktop anzeigen" Funktion umgeh
 
Hallom
ich habe keine Lösung. Mich würde es jedoch interessieren wie Dein Code aussieht.

ustra 29. Dez 2003 10:24

Re: Wie kann die "Desktop anzeigen" Funktion umgeh
 
Hi,

hier ist er:
Delphi-Quellcode:
procedure TFTaskleiste.FormCreate(Sender: TObject);
var
  Result : Integer;
begin
  Data.cbSize := SizeOf(TAppBarData);
  Data.hWnd := FTaskleiste.Handle;
  Data.uEdge := ABE_TOP;
  Data.rc.Left := 0;
  Data.rc.Top := 0;
  Data.rc.Right := 200;
  Data.rc.Bottom := 60;
  result := SHAppBarMessage(ABM_NEW, Data);

  if Result = 0 then
  begin
    ShowMessage('AppBar konnte nicht registriert werden');
    exit;
  end;
  SHAppBarMessage(ABM_QUERYPOS, Data);
  Application.ProcessMessages;
  SHAppBarMessage(ABM_SETPOS, Data);
  Application.ProcessMessages;
  SHAppBarMessage(ABM_SETSTATE, Data);
  Application.ProcessMessages;
  MoveWindow(Data.hWnd, Data.rc.Left, Data.Rc.Top, GetSystemMetrics(SM_CXSCREEN), Data.rc.Bottom, true);
  Application.ProcessMessages;
end;


procedure TFTaskleiste.FormDestroy(Sender: TObject);
begin
  SHAppBarMessage(ABM_REMOVE, Data);
end;
Und wozu brauchst Du das?
Beste Grüße
Ulrich

Jens Schumann 29. Dez 2003 10:28

Re: Wie kann die "Desktop anzeigen" Funktion umgeh
 
Hallo,
ich brauche es eigentlich nicht.
Aber mich hat interessiert wie man ein Form Taskleiste registriert.
Vielen Dank für den Code.

ustra 29. Dez 2003 10:31

Re: Wie kann die "Desktop anzeigen" Funktion umgeh
 
Hi,

kein Thema.

Beste Grüße
Ulrich

ustra 29. Dez 2003 17:30

Re: Wie kann die "Desktop anzeigen" Funktion umgeh
 
Hi,

ich habe inzwischen auch nch weiter gesucht, konnte aber immer noch nichts finden, was mir weiterhilft. Hat jemand eine Lösung?

Beste Grüße
Ulrich

fkerber 29. Dez 2003 18:01

Re: Wie kann die "Desktop anzeigen" Funktion umgeh
 
Hi!

Dabei wird doch deine Form minimiert, oder?
Dann reagier doch auf das minimize-Event und mach dann noch mal ein Restore.

Such mal im Forum danach!

Ich hoffe, das hilft dir.

Ciao fkerber

ustra 29. Dez 2003 18:17

Re: Wie kann die "Desktop anzeigen" Funktion umgeh
 
Hi,

danke für den Hinweis. Das hat es nun aber auch nicht gebracht. Ich habe noch mal weiter gescuht und habe folgendes gefunden: Appbar Komponente Eine Komponente, die das umgeht.

Jetzt funktioniert es.

Beste Grüße
Ulrich


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:23 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