Position der Taskleiste auslesen?

Antworten
TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

Position der Taskleiste auslesen?

Beitrag von TT73GP7 »

Hallo zusammen,

ich bin grade Stolz wie Oska weil ich das erste riesen Update der Software so problemlos überstanden hab.
lach dachte ich :(

nun melden sich die Ersten Anwender (ist nee Firmen interne Anwendung)
einige Anwender finden es Toll die TaskLeiste Oben oder an der Rechten Seite zuhaben
joar nur ich Lese zur Laufzeit die Größe des Bildschirms aus und die Anwendung Startet immer oben Links (hat einen Grund warum genau da).

nun das Auslesen mit Screen.Width etc ja kein Problem
aber wie Finde ich denn nun her raus wo die Taskleiste ist und wie Große diese ist?

weil sonst verdeckt diese meine (MEINE) Anwendung.
und das geht überhaupt nicht :(

Viele Grüße
:)

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Position der Taskleiste auslesen?

Beitrag von theo »

Keine Ahnung, aber vielleicht weiß es Google?

https://www.google.de/search?q=lazarus+taskbar+position

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Position der Taskleiste auslesen?

Beitrag von Michl »

Bei einem Monitor kann man sowas machen:

Code: Alles auswählen

uses ..., LCLIntf, LCLType, Math;
 
procedure TForm1.FormCreate(Sender: TObject);
var
  aLeft, aTop, aWidth, aHeight, aBorderWidth, aBorderHeigth,
  aCaptionHeight: Integer;
begin
  aLeft          := Screen.WorkAreaLeft;
  aTop           := Screen.WorkAreaTop;
  aWidth         := Screen.WorkAreaWidth;
  aHeight        := Screen.WorkAreaHeight;
  aBorderWidth   := GetSystemMetrics(SM_CXFRAME);
  aBorderHeigth  := GetSystemMetrics(SM_CYFRAME);
  aCaptionHeight := GetSystemMetrics(SM_CYCAPTION);
  aWidth         := aWidth - 2 * aBorderWidth;
  aHeight        := aHeight - 2 * aBorderHeigth - aCaptionHeight;
  //Bestimmte Größe
  aWidth         := Min(aWidth,  640);
  aHeight        := Min(aHeight, 480);
  SetBounds(aLeft, aTop, aWidth, aHeight);
end
Zuletzt geändert von Michl am Do 3. Nov 2016, 11:33, insgesamt 1-mal geändert.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

Re: Position der Taskleiste auslesen?

Beitrag von TT73GP7 »

lach

da bin ich aber echt drauf reingefallen mit aTop und aLeft ;)

aber danke
nun läuft alles

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Position der Taskleiste auslesen?

Beitrag von Michl »

TT73GP7 hat geschrieben:da bin ich aber echt drauf reingefallen mit aTop und aLeft ;)
:lol: Danke für den Hinweis, hab es geändert. So ist es, wenn man nur halb bei der Sache ist...

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Antworten