![]() |
Probleme mit verschiedenen Bildschirmauflösungen
Hallo Liebe Wissenden
Ich hab in meinem Programm diesen Code eingebaut
Code:
Nur wenn ich die Button oder Labelgrösse nicht explizit im Programm definiere werden die Button bei einer Größeren Auslösung (z.b. 1600x1200) rissig
//******************************************************************************
//Haupt_Unit //Die Bildschirmauflösung ermitteln Procedure Bild_Aufloesung_Setzen_HHU(); const breite = 1024; {Auflösung, unter das Programm erstellt wurde} hoehe = 768; var schrift: integer; begin schrift := Haupt_Form.PixelsPerInch - 96; if (Screen.width > breite) then begin if (schrift > 0) then begin {für große Schriften} Haupt_Form.ScaleBy(round(((Screen.width / breite)*100) - ((Screen.width / breite - 1) *100)), 100); end else begin {für kleine Schriften} Haupt_Form.ScaleBy(round(((Screen.width / breite)*100)), 100); end; end else begin if (Screen.width = breite) then begin Haupt_Form.ScaleBy(round(((Screen.width / breite) *100) - schrift), 100); end else begin if (schrift > 0) then begin {für große Schriften} Haupt_Form.ScaleBy(round((100 - (breite / Screen.width - 1) *100)-(breite / Screen.width - 1) *100), 100); end else begin {für kleine Schriften} Haupt_Form.ScaleBy(round((100 - (breite/Screen.width - 1) *100)),100); end; end; end; end; Wie bekomme ich es hin, das die Poportionen passen Wenn meine Form (bei 1024x768) auf max steht und ein Panel sagen wir auf 400x600 und in der Mitte der Form steht, ich dann die Auflösung auf z.b 1600x1200 stelle, möchte ich doch das alles noch passt. Sprich das Panel immer noch in der Mitte steht und sich der Größe der Form angepasst hat Hat jemand was? Herr wirf Hirn - bitte |
Re: Probleme mit verschiedenen Bildschirmauflösungen
Soweit mir bekannt, gibt es keine Andere Lösung als den (zugegeben sehr aufwändigen) Weg, den Du schon für das Form gehst, für jedes einzelne Control auf Deinem Form zu gehen. Sprich - Du mußt nach Programmstart alle Controls dynamisch skalieren.
![]() ![]() |
Re: Probleme mit verschiedenen Bildschirmauflösungen
muss ich jetzt das für alle elemente machen?
nun gut, ist halt nur mehr arbeit was ist jetzt aber beser mit der kleinsten auflösungen zu arbeiten oder mit der grössten? also mit welcher auflösung soll ich mein programm schreiben ? |
Re: Probleme mit verschiedenen Bildschirmauflösungen
mit der größten, wenn Du die rechnerisch genaueste skalierung erreichen möchtest, da der Rundungsfehler aber immer zuschlägt (mußt ja immer auf ganze Pixel runden), denke ich es ist in der Praxis Wurscht.
Grüße |
Re: Probleme mit verschiedenen Bildschirmauflösungen
verfluchter Mist
bei 1600x1200 seh ich nix mehr :shock: |
Re: Probleme mit verschiedenen Bildschirmauflösungen
Ist auch gut so. Du gehst nämlich verkehrt rum vor. Würde Dein Programm standardmäßig con 1600x1200 ausgehen, so würde sich ein User mit 640x480 fast zu Tode scrollen, weil er immer nur einen kleinen Ausschnitt des Gesamtbildes sieht. Umgekehrt siehts ähnlich aus. Ist das Programm nämlich auf 640x480 eingestellt, so würde Dein Programm sehr mickrig werden, sofern der Bildschirm auf 1600x1200 eingestellt ist.
Ich benutze deshalb 800x600 als Mittelweg. Die wenigen mit geringerer Auflösung müssen dann eben ab und zu scrollen und die mit wesentlich höherer können zumindest noch alles lesen. |
Re: Probleme mit verschiedenen Bildschirmauflösungen
Zitat:
Zitat:
:wiejetzt: |
Re: Probleme mit verschiedenen Bildschirmauflösungen
@Hansa: Da er alle sichtbaren Elemente skalieren möchte, fällt scrollen weg.
@HomerG: wie ich sagte: durch das Runden auf ganze Pixel bekommst Du ohnehin kleine Abweichungen zwischen den Auflösungen - mach Dir also keinen Stress damit und benutze zum Entwurf eine für Dich angenehme und gut sichtbare Größe. Wenn Du wirklich alle Controls dann zur Laufzeit dynamisch skalierst, sollte es sowohl bei kleineren als auch bei größeren Auflösungen als der zur Entwurfszeit ganz gut aussehen. Grüße |
Re: Probleme mit verschiedenen Bildschirmauflösungen
hi
also wenn ich wie oben die Function benutze und im Programm NICHT die grösse der Button definiere skaliert delphi es automatisch - sonst werden die Button mit höherer Auflösung die button kleiner oder umgekehrt nur nicht bei meinem ActionMainmenuBar .. hmmmm also werde ich die Function oben noch um die komp's erweitern die damit nicht eingeschlossen sind |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:43 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