Einzelnen Beitrag anzeigen

RobbiTobbi

Registriert seit: 23. Mai 2010
10 Beiträge
 
Delphi 7 Personal
 
#1

Appbar am rechten Bildschirmrand?

  Alt 17. Jun 2010, 21:19
Ich habe hier eine Methode gefunden, wie man eine Appbar erstellt. Ich möchte die Appbar aber am rechten und nicht am oberen Bildschirmrand anordnen. Ich habe es mit folgendem Code versucht:
Delphi-Quellcode:
procedure TMainSidebar.CreateAppBar;
var
  iResult: integer;
begin
  // Größe der ganzen Struktur
  fAppBarData.cbSize := SizeOf(TAppBarData);
  // Handle des Formulares, das als AppBar dienen soll
  fAppBarData.hWnd := Self.Handle;
  // Callback-Message
  fAppBarData.uCallbackMessage := WM_APPBARMSG;
  // Wo soll die AppBar sein?
  fAppBarData.uEdge := ABE_Right;
  {Alternative Werte: ABE_BOTTOM, ABE_LEFT, ABE_RIGHT}

  // Rect für den reservierten Platz, wo keine Anwendung "hin darf"
  fAppBarData.rc.Left := Screen.Width - self.ClientWidth;
  fAppBarData.rc.Right := Screen.Width;
  fAppBarData.rc.Top := 0;
  fAppBarData.rc.Bottom := screen.Height;
  // AppBar erstellen
  iResult := SHAppBarMessage(ABM_NEW, fAppBarData);
  // Hat das Erzeugen geklappt?
  if iResult = 0 then
  begin
    ShowMessage('Die Sidebar konnte nicht erzeugt werden. Unter Umständen existiert bereits eine Sidebar an dieser Position.');
    Exit;
  end;
  self.Height := screen.Height;
  // Position abfragen und nochmal setzen
  SHAppBarMessage(ABM_QUERYPOS, fAppBarData);
  SHAppBarMessage(ABM_SETPOS, fAppBarData);
  // Nachrichtenschleife abarbeiten
  Application.ProcessMessages;
  // Bringt das Fenster an die gewünschte Position. Dazu werden die vorher festgelegten Werte verwendet.
  MoveWindow(fAppBarData.hWnd, fAppBarData.rc.Left, fAppBarData.Rc.Top,
    fAppBarData.rc.Right, fAppBarData.rc.Bottom, true);
end;
Allerdings erstreckt sich die Appbar dann über den gesamten Bildschirm (ausser über den reservierten Bereich). Wie kann ich dieses Problem beheben?

Edit: Der Borderstyle des Formulars ist bsnone. Liegt es vlt. daran?


PS.: Ich weiss, dass es schon viele Beiträge zu diesem Thema gibt, habe aber nichts gefunden, das mir hilft.
Robert
---UNDER CONSTRUCTION---

Geändert von RobbiTobbi (17. Jun 2010 um 21:22 Uhr)
  Mit Zitat antworten Zitat