AGB  ·  Datenschutz  ·  Impressum  







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

Andocken wie z.B. bei Miranda/ICQ

Ein Thema von Legnad · begonnen am 20. Nov 2007 · letzter Beitrag vom 22. Nov 2007
Antwort Antwort
Legnad

Registriert seit: 23. Jan 2007
16 Beiträge
 
Delphi XE5 Professional
 
#1

Andocken wie z.B. bei Miranda/ICQ

  Alt 20. Nov 2007, 17:52
Hallo ihr Delphi-Praxis-Menschen,

ich bin gerade dabei eine Art Systemleiste zu erstellen, in die Symbole wie bei der Windows-Taskbar (Quickstart) eingefügt werden können, die Lautstärke verändert werden kann, und bei der die Prozessortemperatur und -auslastung usw. angezeigt wird.

Das Andocken an die Windows Startleiste ist kein Problem, nur frage ich mich, wie ich verhindern kann, dass meine Leiste die anderen Programme verdeckt. So wie es z.B. bei Miranda ist. Wenn man Miranda aus der Tray holt, dann verkleinert sich praktisch der Workspace(?), also die anderen Programme docken sozusagen an Miranda an, wenn man sie maximiert o. Ä.

Ich habe keine Ahnung, wie diesen Effekt erreichen kann.

Danke schonmal im Voraus für eure Hilfe und ich hoffe ich habe es Verständlich geschrieben.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

Re: Andocken wie z.B. bei Miranda/ICQ

  Alt 20. Nov 2007, 18:39
Versuche es damit (siehe Anhang). Irgendwo hab ich noch ein Beispielcode. Schwer ist es nicht, hab es sogar selbst entwickelt. Aber diese fremde Komponente hab ich auf meinem Rechner zuerst gefunden Die ist sogar gut, also wozu weiter suchen?

Es ist eine Komponente, bzw. Unit für Delphi 3, allerdings mit Sourcecode. Du brauchst sie nicht erst installieren, du kannst das Beispiel so testen. Pack dann das kleine Fenster und schiebe es an den oberen, linken oder rechten Bildschirmrand. Es wird andocken und der Arbeitsbildschirm wird verkleinert.
Angehängte Dateien
Dateityp: zip appbar14_652.zip (64,7 KB, 65x aufgerufen)
  Mit Zitat antworten Zitat
Legnad

Registriert seit: 23. Jan 2007
16 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Andocken wie z.B. bei Miranda/ICQ

  Alt 21. Nov 2007, 12:04
Hallo, danke für deine Hilfe! Ist ja echt ne super Komponente.

-Problem gelöst-
  Mit Zitat antworten Zitat
Legnad

Registriert seit: 23. Jan 2007
16 Beiträge
 
Delphi XE5 Professional
 
#4

Re: Andocken wie z.B. bei Miranda/ICQ

  Alt 22. Nov 2007, 21:09
Aber mich würde trotzdem interessieren, wie man den Arbeitsbereich einschränken könnte (Ansatzweise). Ich werd aus der Unit (appbar.pas) nicht sonderlich schlau. Ich meine, es könnte bestimmt auch andere interessieren.

Sofern es nicht gerade wahnsinnig kompliziert ist, weil ich bald erst 1 1/2 Jahre Informatik hab (MSS12). Dennoch weiß ich oftmals mehr als mein Lehrer.

Achja: Die mir empfohlene Komponente kann ich nur weiterempfehlen.
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Andocken wie z.B. bei Miranda/ICQ

  Alt 22. Nov 2007, 21:13
Zitat von Legnad:
Dennoch weiß ich oftmals mehr als mein Lehrer.
ohh man was hast du für lehrer, typisch dt. aber echt ey...

mfg
Martin
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#6

Re: Andocken wie z.B. bei Miranda/ICQ

  Alt 22. Nov 2007, 22:55
Zitat von Legnad:
Aber mich würde trotzdem interessieren, wie man den Arbeitsbereich einschränken könnte (Ansatzweise). Ich werd aus der Unit (appbar.pas) nicht sonderlich schlau. Ich meine, es könnte bestimmt auch andere interessieren.
Hier ein Beispiel aus meinem Beispiele-Ordner. Nur komm nicht gleich mit Detailfragen. Das Beispiel habe ich so 2002 geschrieben.

Natürlich kann das Beispiel nicht das was die Komponente kann, aber es zeigt den wichtigsten Punkt.

Delphi-Quellcode:
function TForm1.TaskHoehe: Integer;
var
  hWnd: Longint; rRect: TRect;
begin
  {berechnen der Taskleistenhöhe}
  hWnd := FindWindow(PCHAR('Shell_TrayWnd'),PCHAR(''));
  if hWnd <> 0 then begin
    GetWindowRect( hWnd, rRect );
    TaskHoehe := rRect.Bottom - rRect.Top;
  end else TaskHoehe := 0; {keine Taskleiste gefunden (Oder alternativ 28 Pixel/ Win98)}
end;

procedure TForm1.SetNewScreenArea(OnOff: Boolean);
var
  rTemp, rDef: TRect;
begin
  if OnOff then begin
    SystemParametersInfo(SPI_GetWorkArea, 0, Pointer(@rDef), 0);
    Top := 0;
    Left := 0;
    Height := Screen.Height - TaskHoehe + 3;

    rTemp := rDef;
    rTemp.Left := Width + 3;
    SystemParametersInfo(SPI_SetWorkArea, 0, Pointer(@rTemp), 0);
  end else begin
    //{als Rettungsanker:} rDef := Rect(0, 0, Screen.Width, Screen.Height);
    SystemParametersInfo(SPI_SetWorkArea, 0, Pointer(@rDef), 0);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetNewScreenArea(True);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  SetNewScreenArea(False);
end;
  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 19:58 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