AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ScaleFactor und Delphi 10.3 (VCL)

Ein Thema von Harry Stahl · begonnen am 23. Nov 2018 · letzter Beitrag vom 24. Nov 2018
Antwort Antwort
Michael II

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

AW: ScaleFactor und Delphi 10.3 (VCL)

  Alt 23. Nov 2018, 22:18
MeinForm.ScaleFactor und auch DeinForm.Scalefactor gibt leider 1 zurück.

Aber für die Controls auf dem Form stimmt der Wert.

Klick mal einen Button auf dein Form:

Delphi-Quellcode:
procedure TForm82.Button1Click(Sender: TObject);
begin
  showmessage( button1.scalefactor.ToString );
end;
Da wird dir dein Programm die von dir erwarteten 1.25 zurückgeben.


Und wenn du dein Form mittels changescale( 5, 2 ); skalierst, wird dein Form und damit auch dein Button mit 5/2=2.5 skaliert.

button1.scalefactor wird dann 1.25*5/2=3.125 zurückgeben.

DeinForm.Scalefactor ist immer noch 1. (Irgendwie stimmt das ja auch ein wenig, da die Titelzeile des Formulars ja beim Skalieren nicht grösser oder kleiner wird .)
Michael Gasser
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: ScaleFactor und Delphi 10.3 (VCL)

  Alt 23. Nov 2018, 22:45
Wegen dieser überkomplizierten Scale-Sache halte ich mich persönlich davon einfach fern und stelle Scaled auf False.
Kann es denn nicht einfach eine Lösung geben für die man kein Mathe studiert haben muss damit es funktioniert?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: ScaleFactor und Delphi 10.3 (VCL)

  Alt 23. Nov 2018, 23:11
Ich vermute mal, daß es sich hier einfach um ein Versäumnis handelt. Ein TForm reagiert anders auf Scaling als die darin enthaltenen Controls (und das muss auch so sein). Offenbar hat man bei Einführung der ScaleFactor Eigenschaft vergessen diese auch in TForm.ChangeScale zu aktualisieren. Ich habe mir mal erlaubt, dafür einen Bugreport zu schreiben: ScaleFactor never changes for TForm

Wofür benötigst du denn diese Information?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.559 Beiträge
 
Delphi 12 Athens
 
#4

AW: ScaleFactor und Delphi 10.3 (VCL)

  Alt 23. Nov 2018, 23:22
Also Monitorv2 hat auch keine Auswirkung (auf den Scalefactor-Wert der Form)

Anhand des Skalierungsfaktors habe ich z.B. Zeilenhöhen von Grids, Listboxen, Fonts und Images je nach DPI angepasst.

Ich verwende jetzt erstmal "uDPIAware.Scalefactor" (eben den Scalefactor-Wert aus meiner Unit).

Wobei ich mir vieles von diesen Berechnungen nun anscheinend sparen kann, da Delphi das wohl selber schon macht (zumindest Listboxen, etc; bei Grafiken muss ich wohl noch selbst Hand anlegen). Aber schon mal eine super Arbeitserleichterung...

Geändert von Harry Stahl (23. Nov 2018 um 23:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: ScaleFactor und Delphi 10.3 (VCL)

  Alt 23. Nov 2018, 23:45
Wobei ich mir vieles von diesen Berechnungen nun anscheinend sparen kann, da Delphi das wohl selber schon macht (zumindest Listboxen, etc; bei Grafiken muss ich wohl noch selbst Hand anlegen). Aber schon mal eine super Arbeitserleichterung...
Mit der TVirtualImageList wird es auch alles etwas leichter. Die kümmert sich je nach Verfügbarkeit um die Auswahl der passenden Größe oder skaliert das Bildchen entsprechend selbst.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#6

AW: ScaleFactor und Delphi 10.3 (VCL)

  Alt 24. Nov 2018, 00:22
Zitat:
Mit der TVirtualImageList wird es auch alles etwas leichter.
Ich habe kürzlich auf die PngImageList gewechselt. Hat die denn mit der TImageCollection noch einen Wert?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: ScaleFactor und Delphi 10.3 (VCL)

  Alt 24. Nov 2018, 04:50
Zitat:
Mit der TVirtualImageList wird es auch alles etwas leichter.
Ich habe kürzlich auf die PngImageList gewechselt. Hat die denn mit der TImageCollection noch einen Wert?
Finde es doch heraus

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: ScaleFactor und Delphi 10.3 (VCL)

  Alt 24. Nov 2018, 09:21
Ich habe kürzlich auf die PngImageList gewechselt. Hat die denn mit der TImageCollection noch einen Wert?
Einer der Vorteile der PngImageList ist, daß sie halt schon seit etlichen Delphi-Versionen verfügbar ist. Dazu hat sie in den meisten Fällen auch eine bessere Darstellung bei Verwendung von Alpha-Channel Icons - nämlich wenn diese nicht über das HIMAGELIST Interface gezeichnet werden, sondern von der Imagelist selbst. Im High-DPI Bereich hat sie aber dieselben Nachteile wie die Standard-TImageList (dafür habe ich aber auch schon was in der Pipeline). Ich bin selbst noch nicht sicher, wie ich damit in der nächsten Zeit umgehen werde. Eventuell muss man auch erst noch ein paar Verbesserungen an der TVirtualImageList/TImageCollection abwarten. Insbesondere beim automatischen Import von TPngImageList gibt es noch Optimierungsmöglichkeiten.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: ScaleFactor und Delphi 10.3 (VCL)

  Alt 23. Nov 2018, 23:15
Kann es denn nicht einfach eine Lösung geben für die man kein Mathe studiert haben muss damit es funktioniert?
Mit 10.3 funktioniert das Scaling auf unterschiedliche Monitor-DPI eigentlich schon ganz gut - auch ohne eigenes Zutun. Andererseits, ich habe tatsächlich Mathe studiert...
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:18 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