AGB  ·  Datenschutz  ·  Impressum  







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

Desktop verschieben!?

Ein Thema von Flodding · begonnen am 23. Apr 2009 · letzter Beitrag vom 23. Apr 2009
Antwort Antwort
Flodding

Registriert seit: 26. Dez 2007
Ort: Kiel
121 Beiträge
 
Turbo Delphi für Win32
 
#1

Desktop verschieben!?

  Alt 23. Apr 2009, 19:34
Guten abend zusammen...

ich versuch grade ne ganz simple sidebar hinzubekommen, die am Oberen bildschirmrand entstehen soll, ca. 50 pixel hoch sein soll und einfach n paar buttons haben soll um programme zu starten... soweit geht auch alles das ja auch nicht die große sache... jedoch verzweifle ich daran, dass die icons hinter der "topbar" immer verschwinden...

ich weiss nicht wers kennt, aber bei der MyGeldBar ist es so, dass die auch am oberen Bildschirmrand (oder halt am unteren wenn man möchte) erscheint, und dann die desktopicons dementsprechend neu sortiert sodass sie sie nicht verdeckt...

wie bekomm ich das auch hin?
Flo
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Desktop verschieben!?

  Alt 23. Apr 2009, 19:36
Was Du suchst ist eine AppBar.
  Mit Zitat antworten Zitat
Flodding

Registriert seit: 26. Dez 2007
Ort: Kiel
121 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Desktop verschieben!?

  Alt 23. Apr 2009, 19:37
dat ding existiert doch schon... ich muss nur wissen wie ich es hinbekomme dass ich beim start des programms den desktop verkleinere sodass die icons neu angeordnet werden damit die nicht hinter der bar verschwinden...
Flo
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Desktop verschieben!?

  Alt 23. Apr 2009, 19:40
Du solltest trotzdem nach dem Stichwort AppBar suchen...
  Mit Zitat antworten Zitat
Flodding

Registriert seit: 26. Dez 2007
Ort: Kiel
121 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Desktop verschieben!?

  Alt 23. Apr 2009, 21:03
okay hab soweit alles gefunden um eine appbar zu erstellen, funktioniert auch... nur dann wenn meine geldbar aus ist habe ich die geldbar gestartet und starte dann meine appbar dazu um sie darunter zu platzieren, passiert das auch, jedoch verschwinden wieder die icons dahinter... also im prinzip kein effekt...

hier mal n stück code :

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  iResult: integer;
begin
regist := TRegistry.Create;
  try
    regist.RootKey:=HKEY_LOCAL_MACHINE;
    regist.Access:= KEY_READ;
    regist.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MyGeldBar', true);
    geldbarapppath:= regist.Readstring('DisplayIcon');
  finally
    regist.free;
  end;
if geldbarapppath <> 'then
begin
ShellExecute(0,'open', PAnsiChar(geldbarapppath),Nil, PAnsiChar(geldbarapppath), SW_SHOW);
form1.Height:=close.Height;
SetWindowLong(Application.Handle, GWL_EXSTYLE, GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
close.Left:=screen.Width - 77;
end;
Sleep(10000);
  SHAppBarMessage(ABM_REMOVE, fAppBarData);
  // 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_TOP;
  {Alternative Werte: ABE_BOTTOM, ABE_LEFT, ABE_RIGHT}

  // Rect für den reservierten Platz, wo keine Anwendung "hin darf"
  fAppBarData.rc.Left := 0;
  fAppBarData.rc.Right := 0;
  fAppBarData.rc.Top := 0;
  fAppBarData.rc.Bottom := self.ClientHeight;

  // AppBar erstellen
  iResult := SHAppBarMessage(ABM_NEW, fAppBarData);

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

  // Formular genauso breit machen, wie Bildschirm
  self.Width := screen.Width;

  // 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, GetSystemMetrics(SM_CXSCREEN), fAppBarData.rc.Bottom, true);
end;
was genau passiert wenn ich mein programm starte:

zuerst startet es nur die geldbar, damit die über meiner appbar ist... danach wartet es 10 sekunden... könnte auch n bissel weniger sein, aber der login bei der geldbar dauert n paar sekunden deshalb hab ichs erstmal so geregelt... danach sollte ja eigentlich meine appbar den platz unter der geldbar einnehmen und sich da platzieren... macht sie auch... nur über die icons vom desktop...
schließe ich nun die geldbar, so bleibt am oberen rand der unsichtbare bereich für meine appbar, aber meine appbar ist immernoch da wo sie war als die gelbar noch an war... schließe ich meine appbar, so verschwindet auch der reservierte ereich für meine appbar obnen wieder und alles ist wie vorher...

irgendwie komisch zu verstehen, aber ich konnts nicht besser erklären ... sorry
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 11:45 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