![]() |
Programm an Bildschirmauflösung anpassen
Moin Zusammen,
ich habe folgendes Problem: Ich programmiere meine Software auf einem Rechner mit 1440 x 900 pixel Auflösung. wenn ich das programm auf anderen Rechnern Starten möchte (mit einer anderen auflösung), wir alles verzerrt und schief angezteigt. Nun habe ich es Bereits mit mehreren Codes probiert, die alle nicht den erwünschten erfolg brachten mal fehlte hier was und mal dort was (z.b. Buttons) oder manches wurde garnet erst skaliert (twebbrowser). Ich hoffe dass ihr einen Code habt mit dem dies Automatisch passiert! Ich bitte um eure Hilfe euer MiniMax Hier mal alle drei Codes dienet funken
Delphi-Quellcode:
procedure TForm1.MaximizeAndScale;
var sWidth: Double; sHeight: Double; begin sWidth := Screen.MonitorFromWindow(Handle).Width / Width; sHeight := Screen.MonitorFromWindow(Handle).Height / Height; if sWidth < sHeight then begin ScaleBy(Round(Screen.MonitorFromWindow(Handle).Width * 1.02), Width); end else begin ScaleBy(Round(Screen.MonitorFromWindow(Handle).Height * 1.02), Height); end; //WindowState := wsMaximized; end; procedure TForm1.scaleform; const breite=1440; {Auflösung, unter der das Fenster erstellt wurde} hoehe=900; 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; WindowState := wsMaximized; end; procedure tform1.ScaleForme; const screenwidthdev = 1440; // Einstellungen auf dem Entwicklungsrechner screenheightdev = 900; // dito var x,y:integer; begin //scaled := true; x:= Screen.width; y:= Screen.Height; if(y <> ScreenHeightDev) or (x <> ScreenwidthDev) then begin Form1.Height := (Form1.ClientHeight* y div ScreenHeightDev) + Form1.Height- Form1.ClientHeight; Form1.Width := (Form1.ClientWidth * x div ScreenWidthDev) + Form1.Height - Form1.ClientHeight; begin form1.ScaleBy(x,Screenwidthdev); end; end; end; |
AW: Programm an Bildschirmauflösung anpassen
Objectinspector: Alignment, Anchors?
|
AW: Programm an Bildschirmauflösung anpassen
Hi ja aber geht das dann? Also mit jeder Auflösung? Und nicht beim Größer Ziehen?
|
AW: Programm an Bildschirmauflösung anpassen
Du schreibst das alles verzerrt und schief ist. Was erwartest du? Das ist jetzt nicht als kritik gedacht aber bevor man dir eine Lösung präsentieren kann musst du selbst auch wissen (und uns mitteilen) wie du es haben willst. Wenn man die Ausmaße von etwas verändert, ändert sich nunmal die Größe.
|
AW: Programm an Bildschirmauflösung anpassen
Also ich habe mein Programm auf einen destop Pc mit 1440x900 geschreiben. Aber wenn ich es auf meinem Netbook starte ist alles viel zu groß da der auf 600x800 läuft! Wenn ich jetzt die geposteten Codes nehme, verschwinden die Buttons unter dem Webbrowser! Darum ist meine Frage ein bissel verwirrend :oops:
|
AW: Programm an Bildschirmauflösung anpassen
Mach doch mal einen Screenshot von deiner Form, dann können wir sehen was du da für Elemente hast.
|
AW: Programm an Bildschirmauflösung anpassen
Also ganz ehrlich, man sollte Programme nicht für verschiedene Auflösungen anpassen.
Denn wenn jemand eine höhre Auflösung hat möchte er diese auch gern nutzen um mehrere Programme nebeneinander platzieren zu können etc.. Und wer eine geringe Auflösung hat, hat in der Regel auch einen kleinen Bildschirm so dass, das Programm genau so groß ist (in Zentimetern auf dem Bildschirm). Du solltest also lieber das Programm von vornherein für die kleinste Auflösung schreiben die du unterstützen willst. Und um unter größeren Auflösungen mehr Informationen bereit stellen zu können (zum Beispiel mehr sichtbare Einträge in einer Listbox) kann man die Anchors verwenden. |
AW: Programm an Bildschirmauflösung anpassen
Liste der Anhänge anzeigen (Anzahl: 1)
hier mal nen screenshot
|
AW: Programm an Bildschirmauflösung anpassen
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal ein Beispiel...
|
AW: Programm an Bildschirmauflösung anpassen
cool das funktioiert -- danke
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 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