AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unit für Appbar

Ein Thema von OrallY · begonnen am 30. Jun 2004 · letzter Beitrag vom 7. Apr 2005
Antwort Antwort
Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#1

Unit für Appbar

  Alt 30. Jun 2004, 16:45
Hab mir grad den Artikel zu AppBars in der CodeLib durchgelesen und einfach mal ausprobieren wollen. Nur kennt er die ganze Strukturen etc. nicht. Welche Unit ist noch einzubinden?
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: Unit für Appbar

  Alt 30. Jun 2004, 16:46
Es sollte wohl die Unit ShellApi sein

......

P.S.: Inc(PostCount)
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#3

Re: Unit für Appbar

  Alt 30. Jun 2004, 16:50
Das freut mich aber, dass sich zufälligerweise so schnell jemand gefunden hat, der mir antwortet .
Thx.
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat
-=IOI=-

Registriert seit: 5. Mär 2005
54 Beiträge
 
#4

Re: Unit für Appbar

  Alt 5. Apr 2005, 20:11
Hätte da auch ein kleines Problem bezüglich der AppBar.
Und zwar besteht mein Programm aus 4 Forms, von denen jede eine AppBar sein soll. Bei der Hauptform funktioniert das auch ganz gut, nur bei den anderen 3 bekomm ich eine Access Violation Fehlermeldung, obwohl ich alles genau gleich, wie bei der Hauptform gemacht haben (die 3 weiteren Forms werden über den Show-Befehl angezeigt).

Gruß Flo
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Unit für Appbar

  Alt 5. Apr 2005, 20:25
Moin Flo,

ohne Sourcen ist das wohl kaum zu beantworten.

Dir ist schon klar, dass man maximal vier AppBars gleichzeitig haben kann, von die Startleiste schon mal eine ist.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
-=IOI=-

Registriert seit: 5. Mär 2005
54 Beiträge
 
#6

Re: Unit für Appbar

  Alt 5. Apr 2005, 20:33
Das OnCreate der Hauptform beginnt so:

Delphi-Quellcode:
ClientWidth := 120;
  ClientHeight := Screen.Height - 28;
  Left := Screen.Width - ClientWidth;
  Top := 0;

  aAppBarData.cbSize := SizeOf(TAppBarData);
  aAppBarData.hWnd := Self.Handle;
  aAppBarData.uCallbackMessage := WM_APPBARMSG;
  aAppBarData.uEdge := ABE_RIGHT;
  {Alternative Werte: ABE_BOTTOM, ABE_LEFT, ABE_RIGHT, ABE_TOP}

  aAppBarData.rc.Left := Form1.Left;
  aAppBarData.rc.Right := Screen.Width;
  aAppBarData.rc.Top := Form1.Top;
  aAppBarData.rc.Bottom := Form1.ClientHeight;
  iResult := SHAppBarMessage(ABM_NEW, aAppBarData);

  if iResult = 0 then
  begin
    ShowMessage('Die AppBar konnte nicht erzeugt werden. Unter Umständen existiert bereits eine AppBar an dieser Position.');
    Exit;
  end;

  SHAppBarMessage(ABM_QUERYPOS, aAppBarData);
  SHAppBarMessage(ABM_SETPOS, aAppBarData);
  Application.ProcessMessages;
  MoveWindow(aAppBarData.hWnd, aAppBarData.rc.Left, aAppBarData.Rc.Top,
    GetSystemMetrics(SM_CXSCREEN), aAppBarData.rc.Bottom, true);

  MPEGaudio := TMPEGaudio.Create;

  Randomize;
  z := 1;
  schirm := 0;
  Maximieren1.Enabled := false;
  Minimieren1.Enabled := true;

  F2 := TForm2.Create(self);
  F2.Show;
  F3 := TForm3.Create(self);
  F3.Show;
  F4 := TForm4.Create(self);
  F4.Show;
und das OnShow der anderen Forms beginnt so: (natürlich für jede Form angepasst)

Delphi-Quellcode:
ClientWidth := 120;
  ClientHeight := Screen.Height - 28;
  Left := 0;
  Top := 0;

  aAppBarData.cbSize := SizeOf(TAppBarData);
  aAppBarData.hWnd := Self.Handle;
  aAppBarData.uCallbackMessage := WM_APPBARMSG;
  aAppBarData.uEdge := ABE_LEFT;
  {Alternative Werte: ABE_BOTTOM, ABE_LEFT, ABE_RIGHT, ABE_TOP}

  aAppBarData.rc.Left := Form2.Left;
  aAppBarData.rc.Right := Form2.ClientWidth;
  aAppBarData.rc.Top := Form2.Top;
  aAppBarData.rc.Bottom := Form2.ClientHeight;
  iResult := SHAppBarMessage(ABM_NEW, aAppBarData);

  if iResult = 0 then
  begin
    ShowMessage('Die AppBar konnte nicht erzeugt werden. Unter Umständen existiert bereits eine AppBar an dieser Position.');
    Exit;
  end;

  SHAppBarMessage(ABM_QUERYPOS, aAppBarData);
  SHAppBarMessage(ABM_SETPOS, aAppBarData);
  Application.ProcessMessages;
  MoveWindow(aAppBarData.hWnd, aAppBarData.rc.Left, aAppBarData.Rc.Top,
    GetSystemMetrics(SM_CXSCREEN), aAppBarData.rc.Bottom, true);
Hoffe, dass hilft weiter
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Unit für Appbar

  Alt 5. Apr 2005, 20:42
Moin Flo,

und an welcher Stelle tritt eine AV auf?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
-=IOI=-

Registriert seit: 5. Mär 2005
54 Beiträge
 
#8

Re: Unit für Appbar

  Alt 5. Apr 2005, 20:52
Direkt beim Start, aber nur, wenn ich versuche in einem der 3 anderen Forms eine AppBar draus zu machen.
Weiß nicht, ob sich die AppBar vielleicht mit dem OnShow nicht versteht, wobei es ja eigentlich gehen müsste (OnCreate hab ich nämlich auch schon probiert - ging auch nicht).
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Unit für Appbar

  Alt 5. Apr 2005, 21:12
Moin Flo,

geh' doch mal bitte im Einzelschritt da durch, und gib dann mal die Zeile an der die AV auftritt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
-=IOI=-

Registriert seit: 5. Mär 2005
54 Beiträge
 
#10

Re: Unit für Appbar

  Alt 7. Apr 2005, 20:47
Hallo Christian,

habe das Problem gefunden und es auf andere Art umgangen. Und zwar hab ich in den weiteren Forms die Position und Größe mit Form2.Width := ...; eingestellt. Dies führte zu dem Fehler. Mit Width := ...; funktioniert es problemlos.

Aufgrund eines anderen Fehlers und der Tatsache, dass zusätzlich zur Taskleiste keine weitere AppBar möglich ist, hab ich nun ein neues Programm erstellet, dass ebenfalls 4 Forms enthält, die alle eine AppBar Komponenete haben, die alle AppBars problemlos erstellt, die ich brauch. (Was ein Satz )

Dieses Programm rufe ich nun beim Programmstart auf und so werden die AppBars erzeugt und mein prog legt sich drüber. Nur weiß ich leider nicht, wie ich dieses Programm beim Beenden meines Hauptprogramms mitbeenden kann.

Hast du da vielleicht eine Idee? (Oder auch ein anderer?)

Gruß Flo
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:34 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