![]() |
Problem mit Fenster wegen Bildschirmauflösung & Schriftg
Moin,
ich hab ein Programm geschrieben und möchte das jetz auf einem beliebig anderen Rechner ausprobieren. Problem dabei ist, daß nicht jeder Rechner die gleiche Bildschirmauflösung und Schriftgröße eingestellt hat. Somit wird das vorher mühevoll gestaltete Layout (Fenster) völlig durcheinander gebracht! Ich muß also plötzlich mit Bildlaufleisten hantieren, obwohl ich das nicht will! Gibt es eine Möglichkeit mein Layout immer an die im entsprechenden Rechner eingestellte Auflösung automatisch anzupassen?? Hoffe ihr könnt mir da en Tipp geben!? :dp: |
Re: Problem mit Fenster wegen Bildschirmauflösung & Schr
Du kannst im OnShow-(oder im OnResize-, falls du auch das Verändern der Fenstergröße erlauben willst) Ereignis des Forms die Größe und Positionen der Komponenten anpassen.
Das Auslesen der Bildschirm-Auflösung geht mit screen.width bzw. screen.height. Wie du die aktuelle Schriftgröße ermittelst, weiß ich jetzt nicht so genau. Mit der Scaled- und PixelsPerInch-Property des Forms allerdings sorgst du dafür, daß die Schriftgröße genau deinen Anforderungen entspricht. |
Re: Problem mit Fenster wegen Bildschirmauflösung & Schr
hallo ,
folgender Code sollte das realisieren:
Delphi-Quellcode:
wenn mehrere Formulare angepasst werden sollen, müssen alle Formulare in ihrem OnCreate diese procedure
const
screenwidthdev = 1250; // Einstellungen auf dem Entwicklungsrechner screenheightdev = 960; // dito var x,y:integer; begin scaled := true; x:= Screen.width; y:= Screen.Height; if(y <> ScreenHeightDev) or (x <> ScreenwidthDev) then begin frmMain.Height := (frmMain.ClientHeight* y div ScreenHeightDev) + frmMain.Height- frmMain.ClientHeight; frmMain.Width := (frmMain.ClientWidth * x div ScreenWidthDev) + frmMain.Height - frmMain.ClientHeight; scaleBy(x,Screenwidthdev); end; // Achtung frmMain muss durch dein Formular ausgetauscht werden aufrufen. raik |
Re: Problem mit Fenster wegen Bildschirmauflösung & Schr
Moin!
Diese oben gepostete Methode sollte normalerweise durch eine auf True gesetzte Scale Eigenschaft der Form von alleine geschehen... MfG Muetze1 |
Re: Problem mit Fenster wegen Bildschirmauflösung & Schr
hallo Muetze1,
habe ich ebend probiert , macht sie aber nicht. raik |
Re: Problem mit Fenster wegen Bildschirmauflösung & Schr
Moin!
Gut, habe ich auch ebend nochmal ausprobiert - geht einwandfrei. Vorraussetzung ist, dass sich die DPI Zahl auch überhaupt ändert bei den Auflösungen. MfG Muetze1 |
Re: Problem mit Fenster wegen Bildschirmauflösung & Schr
Hallo kiar,
Zitat:
|
Re: Problem mit Fenster wegen Bildschirmauflösung & Schr
Hallo,
habe diesen Beitrag nochmal ausgegraben. Klappt bei mir auch wunderbar. Allerdings sind einige Componenten richtig angepasst und andere machen das scheinbar nicht. Was muss man bei den Property der Componenten noch beachten? Was muss auf True und was auf False stehen? :roll: |
Re: Problem mit Fenster wegen Bildschirmauflösung & Schr
Moin!
Naja, eine in den Constraints angegebene Minimumhöhe/-weite wirkt sich u.a. negativ aus und natürlich Komponenten die sich von Haus aus nicht kleiner machen lassen. MfG Muetze1 |
Re: Problem mit Fenster wegen Bildschirmauflösung & Schr
Moin moin :)
ja, ich habe zB die TMS Componente AdvNavBar in das Form eingebaut. Und die Checkboxes und Eingabezeilen verschieben sich und landen zb auf die "Trennlinien" im AdvNavBar. Wobei die Checkboxen etc auch nicht alle von TMS sind. Mit den Constraints arbeite ich gar nicht. Dann liegt das also immer an der Componente selber. Ok, danke für den Hinweis. Werde das dann mal weiter austesten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 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