![]() |
Komponente ignoriert Größeneinstellung
Hallo zusammen,
Unter Delphi 11.3, CE, versuche ich, eine visuelle Komponentwe zu entwickeln. Beim Einfügen der Komponente in ein Formular im Designer hat die Komponente eine andere Größe als vorher festgelegt. Das ist unabhängig von der Skalierung des Bildschirms. Ich arbeite normal mit 175% an einem 4k-Monitor. Im beigefügten Beispiel (alles Unerhebliche habe ich weggelassen) sollte die Komponente 200 x 100 Pixel groß sein, es sind aber real 302 x 151 Pixel. Ich habe divers experimentiert, konnte keine Änderung erzielen. In der erweiterten Ursprungsversion war es so, dass manchmal beim ersten Einfügen die Größe stimmte, danach aber nicht mehr. Ist das ein Bug oder weiß jemand, wie dieses Verhalten abzustellen ist? Hier der Code dazu:
Delphi-Quellcode:
unit KomponentenTest;
interface uses Windows, System.Classes, Vcl.Controls; type tKomponente = class(tWinControl) public constructor Create(aOwner: TComponent); override; destructor Destroy; end; procedure Register; implementation destructor tKomponente.Destroy; begin inherited; end; constructor tKomponente.Create(aOwner: TComponent); begin inherited Create(aOwner); Align:= alNone; AutoSize:=false; AlignWithMargins:=False; Width := 200; Height:= 100; end; procedure Register; begin RegisterComponents('RW', [tKomponente]); end; end. |
AW: Komponente ignoriert Größeneinstellung
Bei 175% Skalierung und einer IDE mit High-DPI Support wäre eine Größe von 350x175 zu erwarten. Ein entsprechender Test hier bei 100% Skalierung liefert dann auch 200x100 und bei 150% entsprechend 300x150, insofern ist der Code offenbar korrekt. Wenn es bei 175% (die dann aber auch in der IDE unterstützt werden müssen) auf 302x151 hinausläuft, muss das Problem an einer anderen Stelle liegen.
Wie sind denn die Einstellungen unter Tools - Optionen - Benutzeroberfläche - Formular-Designer - High DPI? |
AW: Komponente ignoriert Größeneinstellung
Vielen Dank!!
Ich habe es nochmals getestet. Sie haben recht. Bei 175% Skalierung ist das Feld tatsächlich 350x175 Px groß. Bei 100% stimmt es auch mit 200x100. Bei meinen Tests gestern war das aber anders, warum weiß ich nicht. In den Einstellungen steht VCL-Designer - High-DPI-Modus auf "Automatisch ..", Benutzerdefiniertes PPI-Design auf 145 (ausgegraut), Rastergöße skalieren ist nicht angekreuzt. Damit scheint alles richtig zu sein. Leider komme ich mit den Eigenschaften der Skalierung noch nicht ausreichend zurecht. Wo kann man das möglichst präzise und nachvollziehbar mit Beispielen nachlesen? Nochmals Danke für die rasche Anwort!! |
AW: Komponente ignoriert Größeneinstellung
Zitat:
BTW, bei Destroy fehlt ein
Delphi-Quellcode:
;
override
|
AW: Komponente ignoriert Größeneinstellung
Unklar: Kann ich auch nicht präzisieren.
Es ist für mich verwirrend, wenn ich z.B. im Text für Code 200x100 Px eingebe und dann im Formular 350x175 angezeigt bekomme. |
AW: Komponente ignoriert Größeneinstellung
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 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