AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Wie komme ich an das RECT für SystemParametersInfo
Thema durchsuchen
Ansicht
Themen-Optionen

Wie komme ich an das RECT für SystemParametersInfo

Ein Thema von Akut-Programming · begonnen am 7. Apr 2004 · letzter Beitrag vom 13. Apr 2004
Thema geschlossen
Seite 1 von 2  1 2      
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#1

Wie komme ich an das RECT für SystemParametersInfo

  Alt 7. Apr 2004, 18:51
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.
Akut-Programming
be cool, be hot ... just be
 
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Wie komme ich an das RECT für SystemParametersInfo

  Alt 7. Apr 2004, 19:53
In dem du es angibst?
Delphi-Quellcode:
var
  rect: Trect;
begin
  rect.Left := 100;
  rect.Top := 100;
  rect.Right := 200;
  rect.Bottom := 200;
Michael
Ein Teil meines Codes würde euch verunsichern.
 
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#3

Re: Wie komme ich an das RECT für SystemParametersInfo

  Alt 7. Apr 2004, 20:42
dank dir!!
Akut-Programming
be cool, be hot ... just be
 
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#4

Re: Wie komme ich an das RECT für SystemParametersInfo

  Alt 8. Apr 2004, 15:55
warum funztn das nicht???
SystemParametersInfo(SPI_SETWORKAREA,Screen.Height - Form1.Constraints.MaxHeight,rect,SPIF_UPDATEINIFILE); Ich bekomm dir Meldung:
Code:
Inkompatible Typen: 'TRect' und 'TPointer'
In der SDK Hilfe steht aber..
Code:
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.
Hab das Rect Struct eingebaut wie oben geschrieben..
Akut-Programming
be cool, be hot ... just be
 
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Wie komme ich an das RECT für SystemParametersInfo

  Alt 8. Apr 2004, 16:14
Zitat von Akut-Programming:
In der SDK Hilfe steht aber..
Code:
[...] The pvParam parameter must [b]!!! point !!![/b] to the RECT structure [...]
Also mit:
Code:
rect^
übergeben, oder gleich PRect verwenden.


gruss,
dizzy
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
 
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#6

Re: Wie komme ich an das RECT für SystemParametersInfo

  Alt 9. Apr 2004, 21:52
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;
Akut-Programming
be cool, be hot ... just be
 
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Wie komme ich an das RECT für SystemParametersInfo

  Alt 9. Apr 2004, 22:03
Hi!

Mach es so:

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;
oder so:

Delphi-Quellcode:
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;
Sollte funktionieren (hoffe ich zumindest mal )

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
 
w3seek
(Gast)

n/a Beiträge
 
#8

Re: Wie komme ich an das RECT für SystemParametersInfo

  Alt 9. Apr 2004, 22:09
Zitat von mirage228:
Hi!

Mach es so:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  rect: PRect;
begin
  rect^.Left := 100;
...
das faellt schon fast unter grob fahrlaessiger koerperverletzung
 
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Wie komme ich an das RECT für SystemParametersInfo

  Alt 9. Apr 2004, 22:10
Zitat von w3seek:
Zitat von mirage228:
Hi!

Mach es so:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  rect: PRect;
begin
  rect^.Left := 100;
...
das faellt schon fast unter grob fahrlaessiger koerperverletzung
Argh, ja du hast recht!

Das geht nicht und wird in einer AV enden, nimm lieber die andere Variante!

Ist wohl schon zu spät ...

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
 
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#10

Re: Wie komme ich an das RECT für SystemParametersInfo

  Alt 13. Apr 2004, 20:51
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;
Akut-Programming
be cool, be hot ... just be
 
Thema geschlossen
Seite 1 von 2  1 2      


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 16:53 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