AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi VCL Ersatz für GetSystemMetrics(SM_CYSIZE) bitte
Thema durchsuchen
Ansicht
Themen-Optionen

VCL Ersatz für GetSystemMetrics(SM_CYSIZE) bitte

Ein Thema von KodeZwerg · begonnen am 7. Apr 2018 · letzter Beitrag vom 7. Apr 2018
 
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: VCL Ersatz für GetSystemMetrics(SM_CYSIZE) bitte

  Alt 7. Apr 2018, 17:23
Um erstmal alle Missverständnisse zu beseitigen:

Du möchtest wissen wie hoch das "farbige Dingen" ist, in dem in einem VCL-Formular der Text ausgegeben wird, den man Form.Caption zuweist?
Jain, Wissen wollte ich wie ich per VCL die Größe auslese die Windows für Captions im aktuellen DPI setting benutzt/vorgibt, nicht wie hoch meine Eigene Caption ist.
Ich dachte an so etwas banales wie eine "Systems.Windows.Caption.Size.Height" Property. (<- von mir erfundene Wort-Kette)

Ich finde allerdings auch keinen VCL Ersatz mit dem ich die Höhe beeinflussen kann, von daher vermute ich mal das es mit VCL nicht funktioniert und das Thema hiermit am Ende ist.
In VCL ist das wohl vom Client-Bereich getrennt, Caption kommt vom System/Theme/Skin/o.ä..
Ich finde nur Wege wie ich VCL Captions selber ändern kann indem ich ein Borderless Window erstelle und Kombination aus Image + Text + Knöpfe alles selber zeichne, was am WinApi Skalierungs-Fehler Meilenweit fern ist.

Das war halt das blöde, eine 1:1 Portierung klappt nicht wenn ich Api Aufrufe mit VCL Aufrufen ersetzen will.
Bei all meinen Anstrengungen eine Fehlerhafte Skalierung aufzudecken so wie ich es mit WinApi in ein paar Minuten hinbekomme, was soll ich sagen, da fehlen der VCL halt ein paar funktionen, was ja auch gut ist, so entsteht zumindest nicht dieser Fehler, aber ich probiere und teste noch ein wenig herum.
VCL scheint etwas Eigen-Magie mitzubringen die mir diesen Fehler zumindest verbietet nachzuahmen.
Da wird die Caption getrennt vom Client-Bereich erstellt, so das der Client-Bereich immer groß genug ist um bei DPI wechsel die Änderung abzufangen.

[EDIT]
Um es mit VCL nachzustellen, nicht funktionell aber visuell, hier ist das was ich meine:
Man erstellt eine Form, fixe größe, man packt auf diese Form ein Panel, fixe größe / relativ formfüllend.
Nun gibt man der Form eine Sizeable Property, wenn man nun das Window kleiner macht, also kleiner als das Panel, was passiert da bei Euch? Bei mit hat das Fenster dann unten und rechts eine Scrollbar. Auf so einen Fehler war ich aus.
In WinApi passiert so etwas wenn man nicht alle Größen korrekt mit-nutzt, diesen Fehler per VCL hinzubekommen da übe ich noch ein wenig.
[/EDIT]
Gruß vom KodeZwerg

Geändert von KodeZwerg ( 7. Apr 2018 um 17:40 Uhr)
  Mit Zitat antworten Zitat
 

 

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 06:17 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