Home » Tipps & Tricks » Komponenten » TForm » Fenster unter anderen Bildschirmauflösungen und Schriftgröße
Fenster unter anderen Bildschirmauflösungen und Schriftgröße
Man hat eine Anwendung unter der Auflösung 640×480 programmiert, der Benutzer hat jedoch einen großen Monitor mit 1024×786. Das Ergebnis: Rechts und unten befindet sich ein breiter leerer Rand, wenn die Anwendung im Vollbildmodus ausgeführt wird. Hat er zusätzlich noch große Schriften eingestellt, ist das mühevoll gestaltete Layout völlig durcheinander.
Wird der folgende Quellcode in das OnCreate-Ereignis eines Formulars kopiert, wird dieses Problem behoben, indem alle Komponenten entsprechend skaliert werden.
procedure TForm1.FormCreate(Sender: TObject); const breite=800; {Auflösung, unter der das Fenster erstellt wurde} hoehe=600; var schrift: integer; begin schrift := pixelsperinch-96; if screen.width>breite then begin if schrift>0 then {für große Schriften} ScaleBy(round(((screen.width/breite)*100)-((screen.width/breite-1)*100)),100) else {für kleine Schriften} ScaleBy(round(((screen.width/breite)*100)),100); end else begin if screen.width=breite then ScaleBy(round(((screen.width/breite)*100)-schrift),100) else begin if schrift>0 then {für große Schriften} ScaleBy(round((100-(breite/screen.width-1)*100)-(breite/screen.width-1)*100),100) else {für kleine Schriften} ScaleBy(round((100-(breite/screen.width-1)*100)),100); end; end; end;