Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi AppBar programmieren (https://www.delphipraxis.net/11922-appbar-programmieren.html)

MatthiasW 16. Nov 2003 23:00


AppBar programmieren
 
Hallo,

ich programmiere eine AppBar aber irgendwie hab ich probleme für mein Fenster Platz auf dem Bildschirm zu reservieren. Ich benutze bis jetzt folgenden code welcher mir eigentlich den Platz reservieren sollte der aber nicht funktioniert:

Delphi-Quellcode:
procedure TForm1.RegisterAppBar();
var
Result : Integer;
begin
  DAta.cbSize := SizeOf(TAppBarData);;
  Data.hWnd := Form1.Handle;
  Data.uCallbackMessage := WM_APPBAR;
  Data.uEdge := ABE_LEFT;

  Data.rc.Left := 0;
  Data.rc.Top := 0;
  Data.rc.Right := 26;
  Data.rc.Bottom := 400;

  result := SHAppBarMessage(ABM_NEW, Data);

  if Result = 0 then
  begin
    ShowMessage('AppBar konnte nicht registriert werden');
    exit;
  end;
  SHAppBarMessage(ABM_QUERYPOS, Data);
  SHAppBarMessage(ABM_SETPOS, Data);
  Application.ProcessMessages;
  MoveWindow(Form1.Handle,0,0,26,400,True);
end;
diese funktion rufe ich im Show - Event des Forms auf. Aber nix passiert. Kann mir jemand nen tipp geben was ich falsch mache? Ich habe hier schon gesucht aber die Ergebnisse haben leider nicht dazu beigetragen das es funktioniert.

Gibts da vielleicht ein Tutorial oder ein Sample wie diese Funktion SHAppBarMessage zu handhaben ist?

Danke für eure Hilfe

Mfg Matthias

[edit=r_kerber]Delphi-Tags eingefügt Mfg, r_kerber[/edit]

MatthiasW 17. Nov 2003 06:47

Re: AppBar programmieren
 
Hallo,

ich hab den Code jetzt wie folgt abgeändert und nun wird das Formular links platziert aber Platz wird immernoch keiner reserviert:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  DAta.cbSize := SizeOf(TAppBarData);;
  Data.hWnd := Form1.Handle;
  Data.uEdge := ABE_LEFT;

  Data.rc.Left := 0;
  Data.rc.Top := 0;
  Data.rc.Right := 60;
  Data.rc.Bottom := 0;

  result := SHAppBarMessage(ABM_NEW, Data);

  if Result = 0 then
  begin
    ShowMessage('AppBar konnte nicht registriert werden');
    exit;
  end;

  SHAppBarMessage(ABM_QUERYPOS, Data);
  SHAppBarMessage(ABM_SETPOS, Data);
  Application.ProcessMessages;
  MoveWindow(Data.hWnd, Data.rc.Left, Data.Rc.Top, Data.rc.Right,
             GetSystemMetrics(SM_CYSCREEN), true);
end;
was kann den nu noch falsch sein?

Mfg Matthias

[edit=r_kerber]Delphi-Tags eingefügt! Mfg, r_kerber[/edit]

MatthiasW 17. Nov 2003 17:12

Re: AppBar programmieren
 
Hallo,

tja das problem weswegen es nicht funktioniert hat war einfach: ich habe eine andere Shell verwendet und diese hat scheinbar dafür sorge getragen das es nicht funktioniert hat.

Mfg Matthias


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