Autor Beitrag
magnitudo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31

WIN 8.1

BeitragVerfasst: Mo 30.03.09 20:26 
Hallo zusammen,

ich möchte bündig neben dem Hauptfenster meiner Application ein zweites Fenster positionieren,
muss dazu aber wissen welches Windows-Design der User eingestellt hat um Programmtechnisch darauf reagieren zu können.
Denn die Fensterbreite unter Vista mit dem Aero-Design ist breiter als unter dem normalen Design, also auch dem XP-Design.
Wie und wo kann ich im System erfragen, welches Design der User verwendet ?
Das auslesen der Windows-Version hilft mir hier nicht viel weiter, da es auch unter Vista möglich ist
das Windows-Standard-Design einzustellen.
Ich möchte einfach nur unterscheiden können zwischen Aero und Standard.

Vielen Dank und viele Grüße
Thomas
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mo 30.03.09 20:27 
Öhm warum liest du nicht einfach deine Formularbreite aus? Das sollte doch die komplette Größe mit allen Rahmen sein

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 30.03.09 20:30 
Schau mal hier, da habe ich gerade die einzelnen Werte aufgeschrieben wie sich Rahmen, Fensterbreite (Width) und Fensterbereich ohne Rahmen (ClientWidth) zusammensetzen:
www.delphi-forum.de/....php?p=555047#555047
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 30.03.09 20:33 
Du möchtest nicht wissen, welches Design aktiv ist, sondern wie breit/hoch gewisse Elemente sind. Dafür gibt es Suche im MSDN GETSYSTEMMETRICS (wie user profile iconjaenicke grade auch indirekt geschrieben hat).

_________________
We are, we were and will not be.
magnitudo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31

WIN 8.1

BeitragVerfasst: Di 31.03.09 10:35 
Hallo zusammen,

also ich bin durch eure Hilfe richtig gut weiter gekommen !
Jaenicke hat das in seinem Beispiel exakt ermittelt. Die Dimensionen stimmen so genau.
Leider kannte ich bis dato die Funktion "GetSystemMetrics" noch nicht. Wieder etwas dazugelernt.
Zu Beginn hat mich nur der Parameter "SM_CXFRAME" etwas irritiert, da dieser wie Jaenicke schreibt,
bei Fenstern mit veränderbarer Größe zur Anwendung kommt. Da meine Fenster jedoch "Fixed" sind habe ich
zuerst den Parameter "SM_CXFIXEDFRAME" getestet, der jedoch das Falsche Ergebnis lieferte.
Auch bei Fenstern mit nicht veränderbarer Größe funktioniert nur "SM_CXFRAME" und zwar im Zusammenspiel
mit "ClientWidth", nicht "Width" alleine.

Vielen herzlichen Dank noch einmal an alle
beste Grüße
Thomas