Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit Fenster wegen Bildschirmauflösung & Schriftgröße (https://www.delphipraxis.net/40732-problem-mit-fenster-wegen-bildschirmaufloesung-schriftgroesse.html)

Tommy111 20. Feb 2005 10:13


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:

leddl 20. Feb 2005 10:32

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.

kiar 20. Feb 2005 10:57

Re: Problem mit Fenster wegen Bildschirmauflösung & Schr
 
hallo ,

folgender Code sollte das realisieren:
Delphi-Quellcode:
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
wenn mehrere Formulare angepasst werden sollen, müssen alle Formulare in ihrem OnCreate diese procedure
aufrufen.

raik

Muetze1 20. Feb 2005 15:26

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

kiar 20. Feb 2005 15:35

Re: Problem mit Fenster wegen Bildschirmauflösung & Schr
 
hallo Muetze1,

habe ich ebend probiert , macht sie aber nicht.

raik

Muetze1 20. Feb 2005 16:31

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

Tommy111 21. Feb 2005 13:53

Re: Problem mit Fenster wegen Bildschirmauflösung & Schr
 
Hallo kiar,

Zitat:

Delphi-Quellcode:
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

hat funktioniert! Danke!

AirJordan 27. Apr 2005 17:10

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:

Muetze1 27. Apr 2005 23:02

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

AirJordan 28. Apr 2005 08:44

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 15:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz