![]() |
Wie komme ich an das RECT für SystemParametersInfo
Ich wollte mal die Arbeitsfläche von Windows anpassen, sodas alle anderen Anwendungen sozusagen an meins "andocken" beim maximieren.. dazu hatte ich in der Windows SDK die Funktion SystemParametersInfo gefunden, mit der dieß möglich ist. Nur leider fehlt mir hierzu das verlangte RECT..!????
Code:
SPI_SETWORKAREA The pvParam parameter must point to the RECT structure that contains the coordinates of the work area.
|
Re: Wie komme ich an das RECT für SystemParametersInfo
In dem du es angibst?
Delphi-Quellcode:
var
rect: Trect; begin rect.Left := 100; rect.Top := 100; rect.Right := 200; rect.Bottom := 200; |
Re: Wie komme ich an das RECT für SystemParametersInfo
dank dir!!
|
Re: Wie komme ich an das RECT für SystemParametersInfo
warum funztn das nicht???
Delphi-Quellcode:
Ich bekomm dir Meldung:
SystemParametersInfo(SPI_SETWORKAREA,Screen.Height - Form1.Constraints.MaxHeight,rect,SPIF_UPDATEINIFILE);
Code:
In der SDK Hilfe steht aber..
Inkompatible Typen: 'TRect' und 'TPointer'
Code:
Hab das Rect Struct eingebaut wie oben geschrieben.. :gruebel:
pvParam
Depends on the system parameter being queried or set. For more information about systemwide parameters, see the uiAction parameter. If not otherwise indicated, specify NULL The pvParam parameter must point to the RECT structure that contains the coordinates of the work area. |
Re: Wie komme ich an das RECT für SystemParametersInfo
Zitat:
Code:
übergeben, oder gleich PRect verwenden.
rect^
gruss, dizzy |
Re: Wie komme ich an das RECT für SystemParametersInfo
:wall: hmm jetzt bekomm ich aber ne Zugirffsverletzung..
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var rect: PRect; begin rect.Left := 100; rect.Top := 100; rect.Right := 200; rect.Bottom := 200; Form1.Constraints.MaxHeight := 30; Form1.Constraints.MinHeight := 30; Form1.Constraints.MinWidth := Screen.Width; //SystemParametersInfoA(); //SystemParametersInfoW(); SystemParametersInfo(SPI_SETWORKAREA,Screen.Height - Form1.Constraints.MaxHeight,rect,SPIF_UPDATEINIFILE); end; |
Re: Wie komme ich an das RECT für SystemParametersInfo
Hi!
Mach es so:
Delphi-Quellcode:
oder so:
procedure TForm1.FormCreate(Sender: TObject);
var rect: PRect; begin rect^.Left := 100; rect^.Top := 100; rect^.Right := 200; rect^.Bottom := 200; Form1.Constraints.MaxHeight := 30; Form1.Constraints.MinHeight := 30; Form1.Constraints.MinWidth := Screen.Width; //SystemParametersInfoA(); //SystemParametersInfoW(); SystemParametersInfo(SPI_SETWORKAREA, Screen.Height - Form1.Constraints.MaxHeight, rect, SPIF_UPDATEINIFILE); end;
Delphi-Quellcode:
Sollte funktionieren (hoffe ich zumindest mal :mrgreen:)
procedure TForm1.FormCreate(Sender: TObject);
var rect: TRect; begin rect.Left := 100; rect.Top := 100; rect.Right := 200; rect.Bottom := 200; Form1.Constraints.MaxHeight := 30; Form1.Constraints.MinHeight := 30; Form1.Constraints.MinWidth := Screen.Width; //SystemParametersInfoA(); //SystemParametersInfoW(); SystemParametersInfo(SPI_SETWORKAREA, Screen.Height - Form1.Constraints.MaxHeight, @rect, SPIF_UPDATEINIFILE); end; mfG mirage228 |
Re: Wie komme ich an das RECT für SystemParametersInfo
Zitat:
|
Re: Wie komme ich an das RECT für SystemParametersInfo
Zitat:
Das geht nicht und wird in einer AV enden, nimm lieber die andere Variante! Ist wohl schon zu spät ... mfG mirage228 |
Re: Wie komme ich an das RECT für SystemParametersInfo
Hi Leute!!
Ich hab da mal wieder n Problem... unzwar will ich n Tool so in der Art von ner Toolbar schreiben. Die Funktion wie man die Arbeitsfläche von Windows vergibt hab ich ja schon in der Windows SDK gefunden. Es funktioniert nur nicht so wie ich es mir vorstelle..die Anwendungen sollen an meiner "andocken" wenn sie maximiert werden. Nur bei mir ist es so, das wenn ich die Arbeitsfläche mit meinem Code verkleinere, meine Anwendung dann auch an ner anderen Position angezeigt wird. Meine Frage nun.. wie muss ich meinen Code umstellen, damit meine Anwendung auf der Taskleiste anliegt, aber alle anderen Anwendungen an meiner dann andocken, wenn sie maximiert werden!?
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var rect: TRect; begin Form1.Constraints.MaxHeight := 30; Form1.Constraints.MinHeight := 30; Form1.Constraints.MinWidth := Screen.Width; //Form1.Top:=Form1.Top+60; rect.Left := Screen.WorkAreaLeft; rect.Top := Screen.WorkAreaTop; rect.Right := Screen.WorkAreaWidth; rect.Bottom := Screen.WorkAreaHeight; SystemParametersInfo(SPI_SETWORKAREA,Screen.Height,@rect,SPIF_UPDATEINIFILE); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 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