Woher bekomme ich die Abmessungen der Taskleiste?


Manchmal kommt es vor, dass ein eigenes Programm durch die Startleiste, die im Vordergrund ist teilweise verdeckt wird. Mit der folgenden Procdure kann man die Koordinaten der Startleiste abfragen.

procedure TForm1.Button1Click(Sender: TObject);
var Taskleiste : HWnd;
    Rahmen : TRect;
begin
  Taskleiste := FindWindow('Shell_TrayWnd', nil);
  GetWindowRect(Taskleiste, Rahmen);
  Label1.Caption := 'Left: '   + IntToStr(Rahmen.Left);
  Label2.Caption := 'Right: '  + IntToStr(Rahmen.Right);
  Label3.Caption := 'Top: '    + IntToStr(Rahmen.Top);
  Label4.Caption := 'Bottom: ' + IntToStr(Rahmen.Bottom);
end;

Hinweis: Die Taskleiste ragt an den Bildschirmraendern jeweils um zwei Pixel ueber den sichtbaren Bildschirmbereich hinaus.

Delphi 1 Delphi 2 Delphi 3 Delphi 4
nicht getestet Version nicht betroffen getestet

siehe auch:


Delphi FAQ