![]() |
Form immer in der rechten unteren Bildschirmecke anzeigen???
Hallo!
Ich habe eine kleine Form, die ich unabhängig von der Auflösung immer in der rechten unteren Bildschirmecke über der Task-Leiste anzeigen möchte. Wie mache ich das? |
Re: Form immer in der rechten unteren Bildschirmecke anzeige
Hallo!
Das kann ich dir sagen wie das geht! Soll ich? OK!
Delphi-Quellcode:
procedure TfrmMain.SetWindow;
var hWnd: THandle; Rect: TRect; TaskbarHeight: Integer; begin FileList:=TStringList.Create; hWnd := FindWindow('Shell_TrayWnd', nil); GetWindowRect(hWnd, Rect); TaskbarHeight := Rect.Bottom - Rect.Top; MoveWindow(handle,screen.Width - self.Width,(screen.Height-self.Height)-TaskbarHeight,self.Width,self.Height,true); SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE); FormStyle:=fsStayOnTop; SetWindowPos(Handle, HWND_TOPMOST, Self.Left, Self.Top, Self.Width, Self.Height, SWP_NOSIZE); if GetForeGroundWindow <> Handle then BringToFront; end; |
Re: Form immer in der rechten unteren Bildschirmecke anzeige
Alternativ könnte man es auch so machen ;)
Delphi-Quellcode:
var
aRect: TRect; begin SystemParametersInfo(SPI_GETWORKAREA, 0, @aRect, 0); Form1.Top := aRect.Bottom - Form1.Height; Form1.Left := aRect.Right - Form1.Width; end; |
Re: Form immer in der rechten unteren Bildschirmecke anzeige
Man sollte vielleicht noch auf Veränderungen reagieren:
Delphi-Quellcode:
Gruß, teebee// Form-Deklaration Procedure Adjust; Procedure WMSETTINGCHANGE(Var Msg: TMessage); message WM_SETTINGCHANGE; Procedure WMDISPLAYCHANGE(Var Msg: TMessage); message WM_DISPLAYCHANGE; ... Procedure TForm1.WMSETTINGCHANGE(Var Msg: TMessage); Begin If Msg.WParam = SPI_SETWORKAREA Then Adjust; End; Procedure TForm1.WMDISPLAYCHANGE(Var Msg: TMessage); Begin Adjust; End; Procedure TForm1.Adjust; Var WorkArea: TRect; Begin SystemParametersinfo(SPI_GETWORKAREA,0,@WorkArea,0); Left := WorkArea.Right-Width; Top := WorkArea.Bottom-Height; End; |
Re: Form immer in der rechten unteren Bildschirmecke anzeige
Vielen Dank an alle! ;-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz