AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi 11 -GetSystemMetrics( SM_CXSIZEFRAME ) ermittelt andere Werte

Delphi 11 -GetSystemMetrics( SM_CXSIZEFRAME ) ermittelt andere Werte

Ein Thema von Michael II · begonnen am 24. Okt 2021 · letzter Beitrag vom 27. Okt 2021
Antwort Antwort
Seite 3 von 3     123
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
477 Beiträge
 
Delphi 11 Alexandria
 
#21

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

  Alt 26. Okt 2021, 17:55
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.
Bernd
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.934 Beiträge
 
Delphi 12 Athens
 
#22

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

  Alt 26. Okt 2021, 18:06
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
703 Beiträge
 
Delphi 11 Alexandria
 
#23

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

  Alt 27. Okt 2021, 09:24
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
Michael Gasser

Geändert von Michael II (27. Okt 2021 um 10:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.286 Beiträge
 
Delphi 11 Alexandria
 
#24

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

  Alt 27. Okt 2021, 09:32
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.

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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.449 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#25

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

  Alt 27. Okt 2021, 09:32
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.
Thomas Mueller
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
703 Beiträge
 
Delphi 11 Alexandria
 
#26

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

  Alt 27. Okt 2021, 10:38
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.

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.
Michael Gasser

Geändert von Michael II (27. Okt 2021 um 15:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.934 Beiträge
 
Delphi 12 Athens
 
#27

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

  Alt 27. Okt 2021, 12:08
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)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:30 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