Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi 11 -GetSystemMetrics( SM_CXSIZEFRAME ) ermittelt andere Werte (https://www.delphipraxis.net/209092-delphi-11-getsystemmetrics-sm_cxsizeframe-ermittelt-andere-werte.html)

BerndS 26. Okt 2021 16:55

AW: Delphi 11 -GetSystemMetrics( SM_CXSIZEFRAME ) ermittelt andere Werte
 
Zitat:

...Anpassung seiner Anwendungen..
Da PE 6.0 z.B. auch die Höhe des Fenstertitels eines Toolwindows vergrößert, ist doch eine Anpassung der Vcl zu machen.
Ich wüsste jetzt nicht, wie ich das in der Anwendung berücksichtigen sollte.

Uwe Raabe 26. Okt 2021 17:06

AW: Delphi 11 -GetSystemMetrics( SM_CXSIZEFRAME ) ermittelt andere Werte
 
Zitat:

Zitat von BerndS (Beitrag 1496646)
Zitat:

...Anpassung seiner Anwendungen..
Da PE 6.0 z.B. auch die Höhe des Fenstertitels eines Toolwindows vergrößert, ist doch eine Anpassung der Vcl zu machen.
Ich wüsste jetzt nicht, wie ich das in der Anwendung berücksichtigen sollte.

Hab da gerade mal jemanden mit der Nase drauf gestupst.

Michael II 27. Okt 2021 08:24

AW: Delphi 11 -GetSystemMetrics( SM_CXSIZEFRAME ) ermittelt andere Werte
 
Hallo lieber Uwe,

Sorry für meine späte Reaktion. Besten Dank für all deine Abklärungen, Infos und fürs Gegentesten.

In einem Forum von microsoft steht auch was zu diesem Thema. Offenbar sollte man seit Jahren bei solchen "Randberechnungen" SM_CXPADDEDBORDER auch beachten; SM_CXSIZEFRAME allein genügte nur bis und mit Vista.

Damit erübrigt sich auch ein QP Eintrag: Delphi 11 macht's genau so wie es heutzutage sein sollte.

Bleibt also: Beim Umstieg auf Delphi 11: Eigenen Code überprüfen und allenfalls anpassen.
Bei "Randberechnung via GetSystemMetrics()":
Bis Delphi 10 reichte: GetSystemMetrics(SM_CXSIZEFRAME)
Bis Delphi 11: GetSystemMetrics(SM_CXSIZEFRAME) + GetSystemMetrics(SM_CXPADDEDBORDER)

Cool wäre dies: Du lädst ein altes Projekt in ein neues Delphi. Ein Tool prüft den Code auf bekannte Probleme und warnt dich.

Uns allen einen sonnigen Tag wünsch
Michael

jaenicke 27. Okt 2021 08:32

AW: Delphi 11 -GetSystemMetrics( SM_CXSIZEFRAME ) ermittelt andere Werte
 
Ich habe an der Stelle Glück, denn mir haben bisher immer ClientWidth und Width usw. gereicht. Direkt mit den Randinformationen musste ich deshalb gar nicht arbeiten.

Zitat:

Zitat von Michael II (Beitrag 1496669)
Damit erübrigt sich auch ein QP Eintrag: Delphi 11 macht's genau so wie es heutzutage sein sollte.

Das Problem wird ja ohnehin nicht von Delphi verursacht, sondern es geht um die Werte, die Windows basierend auf dem Manifest liefert. Und es wäre schlicht falsch, wenn Delphi in die Versionsinformationen nicht standardmäßig eintragen würde, dass die aktuelle Version von Windows, für die Delphi entwickelt wurde, unterstützt wird, sondern eine ältere nehmen würde.

dummzeuch 27. Okt 2021 08:32

AW: Delphi 11 -GetSystemMetrics( SM_CXSIZEFRAME ) ermittelt andere Werte
 
Zitat:

Zitat von Michael II (Beitrag 1496669)
Cool wäre: Du lädst ein Projekt in ein neues Delphi. Ein Tool prüft den Code auf Probleme wie dieses und warnt dich.

Ein Grep Search sollte sowas finden. Ist aber natürlich nicht automatisch.

Michael II 27. Okt 2021 09:38

AW: Delphi 11 -GetSystemMetrics( SM_CXSIZEFRAME ) ermittelt andere Werte
 
Zitat:

Zitat von jaenicke (Beitrag 1496670)
Ich habe an der Stelle Glück, denn mir haben bisher immer ClientWidth und Width usw. gereicht. Direkt mit den Randinformationen musste ich deshalb gar nicht arbeiten.

Steiles Glück ist immer das beste... ;-). Bei mir wars in einer Komponente fürs Skalieren von Fenstern unter Beibehaltung vom Seitenverhältnis (Dativ ist...) drin. Ich halte mich auch lieber am Glück fest und hab's ausgebaut.

Zitat:

Zitat von jaenicke (Beitrag 1496670)
Und es wäre schlicht falsch, wenn Delphi in die Versionsinformationen nicht standardmäßig eintragen würde, dass die aktuelle Version von Windows...

Völlig klar. Die Anpassung war ja nur fürs Testen, ob dort der Grund liegt.

Uwe Raabe 27. Okt 2021 11:08

AW: Delphi 11 -GetSystemMetrics( SM_CXSIZEFRAME ) ermittelt andere Werte
 
Wie zu erwarten ist das auch außerhalb des Delphiversums ein Problem: Why does Window geometry change when migrating from VS2010 to VS2017?
(Dank an Stefan Glienke für den Link)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 Uhr.
Seite 3 von 3     123   

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