AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Probleme mit Skalierung (DPI) bei - zur Laufzeit erstellter - Controls
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Skalierung (DPI) bei - zur Laufzeit erstellter - Controls

Ein Thema von Kyro · begonnen am 4. Nov 2014 · letzter Beitrag vom 16. Nov 2014
 
Kyro

Registriert seit: 16. Aug 2005
Ort: Wien
45 Beiträge
 
Delphi XE2 Professional
 
#1

Probleme mit Skalierung (DPI) bei - zur Laufzeit erstellter - Controls

  Alt 4. Nov 2014, 00:14
Ich versuche seit längerem eine Anwendung für höhere DPI-Skalierungen (120, 144, 192 dpi) fit zu machen...

Leider stellte ich jetzt erst heraus dass jedes Controls und sogar ganze Frames(!) die während der Laufzeit erstellt werden im Gegensatz zu den Design-Controls auf dem Formular (Mainform.Scaled=True) gar nicht auf die höhere DPI-Einstellung des Betriebssystems skaliert werden

Hat jemand eine Idee wie ich Windows dazu bringe diese Controls nachträglich zu skalieren, oder muss ich etwas anderes beim erstellen der Controls achten? (siehe Beispiel)

1) Einen Button auf die Form legen - (Width=75, Height=25, Left=100, Top=5 Caption='Button #1')
2) Im FormCreate...
Code:
procedure TMainform.FormCreate(Sender: TObject);
var RuntimeButton: TButton;
begin
  RuntimeButton := TButton.Create(Mainform);
  RuntimeButton.top := 5;
  RuntimeButton.Left := 5;
  RuntimeButton.Height := 25;
  RuntimeButton.Width := 75;
  RuntimeButton.caption := 'Button #2';
  RuntimeButton.Parent := Mainform;
end;
3) Nun das ganze auf einem PC laufen lassen auf dem z.B.: 120dpi (125%) eingestellt sind
(Meine Erwartung wäre dass die beiden Buttons gleich groß sind, leider ist Button #2 bei mir kleiner bzw. nicht skaliert)

Die komplette Skalierung selbst zu übernehmen (Mainform.Scaled=False + ScaleBy? verwenden) wäre für mich auch OK bzw. sogar wünschenswert weil man damit ja auch während der Laufzeit "frei" skalieren könnte... Allerdings scheitern meine Versuche darin das dann etliche Controls - trotz richtig gesetzter Anchors - für mich nicht nachvollziehbar überlappen. (Was nicht passiert wenn Scaled=True und der Frame im Design eingebunden wurde)

(OS=Windows 7, Windows 8.1, Delphi XE2)
  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 11:19 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 by Thomas Breitkreuz