AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Appbar am rechten Bildschirmrand?
Thema durchsuchen
Ansicht
Themen-Optionen

Appbar am rechten Bildschirmrand?

Offene Frage von "RobbiTobbi"
Ein Thema von RobbiTobbi · begonnen am 17. Jun 2010 · letzter Beitrag vom 19. Jun 2010
 
RobbiTobbi

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

Appbar am rechten Bildschirmrand?

  Alt 17. Jun 2010, 20: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 20:22 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:10 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