![]() |
Exe mit zu großer Auflösung
moin moin!
hab da mal ne frage ^^ und zwar programmiere ich ein programm (Delphi) mit einer Bildschirmauflösung von 1280 x 960. soweit so gut gibt es eine möglichkeit, wenn man an einem anderen rechner ohne delphi (und schlechter grafikkarte) die exe startet, die "auflösung" des programms kleiner zu machen!? oder kann ich vorher beim programmieren schon an ieiner einstellung basteln damit sich das prog automatisch anpasst?! danke für jegliche konstruktive hilfe ;) mfg markus! |
Re: Exe mit zu großer Auflösung
|
Re: Exe mit zu großer Auflösung
Hallo
![]() (English): What to keep in mind when scaling Delphi apps on different screen resolultions |
Re: Exe mit zu großer Auflösung
ok da hab ich wohl gepennt^^
Delphi-Quellcode:
nur bleibt ein problem...mein delphi erkennt einen undefinierten
sWidth := Screen.MonitorFromWindow(Handle).Width / Width;
sHeight := Screen.MonitorFromWindow(Handle).Height / Height; bezeichner, MonitorFromWindow ist ihm unbekannt. eine idee?! ( @ toms: so gut ist mein englisch auch wieder nicht ;) und außerdem ist das programm schon fertig - also hab ich jetzt nich mehr die möglichkeit vorher daran zu denken meine form kleiner zu machen ^^ aber danke!) EDIT: hab das ganze mal in meinen code geklatscht und anstatt dem MonitorFormWindow einfach Monitors[1] benutzt aber das ist eigentl nicht das was ich suche! denn dieser code maximiert einfach das ganze fenster so, dass es quasi an die auflösung angepasst maximiert ist. ich bräuchte etwas was die form im verhältnis zu der vorhandenen auflösung verändert und nicht einfach maximiert! |
Re: Exe mit zu großer Auflösung
Du könntest mal nach
![]() |
Re: Exe mit zu großer Auflösung
Probiers mal damit.
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
const breite=800; // Hier Angeben in Welcher Auflösung du Programmiert hast hoehe=600; var schrift: integer; begin schrift := pixelsperinch-96; if screen.width>breite then begin if schrift>0 then ScaleBy(round(((screen.width/breite)*100)-((screen.width/breite-1)*100)),100) else 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 ScaleBy(round((100-(breite/screen.width-1)*100)-(breite/screen.width-1)*100),100) else ScaleBy(round((100-(breite/screen.width-1)*100)),100); end; end; end; |
Re: Exe mit zu großer Auflösung
ja sehr gut nach sowas hab ich gesucht ^^
welche einstellung in dem text muss ich denn verändern, damit nicht nur alles was auf der form ist sondern auch die form selbst kleiner/ größer wird?! |
Re: Exe mit zu großer Auflösung
Nur deine Auflösung angeben dann sollte es funktionieren.
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
const breite=1280; // Hier Angeben in Welcher Auflösung du Programmiert hast hoehe=960; var schrift: integer; begin... |
Re: Exe mit zu großer Auflösung
Beim erstellen der Form aber aufpasen, daß es erstmal vollständig auf den Desktop (Monitor) paßt, denn Delphi hat ein kleines Problem beim erstellen zu großer Forms.
Es reagiert nicht auf die Größenbeschränkung seitens Windows und vorallem bei den Ancors vergißt es da entsprechende Anpassungen vorzunehmen. Ein Form kann nur so groß erstellt werden, wie die Auflösung ist. Also erstmal die Form klein laden und dann z.B. in OnCreate anpassen (vergrößern). > maximal 1024x768 (inklusive Titelleiste und Rahmen, also etwas kleiner) wäre wohl ausreichend. Oder man kümmert sich selbst um die Ausrichtung und Positionierung der Komponenten, aber das wäre wohl oftmals mit "zu viel" und unnötigem Aufwand verbunden. |
Re: Exe mit zu großer Auflösung
ja also mein prog lief heute...so gute 5 stunden lang
ohne probleme! und auch mit der auflösung, ein rechner war 1024x*der passende wert* :D der andere 800x600 hat alles super funktioniert! nochmal danke für den code...hätte ich alleine wohl nie hinbekommen ^^ grüße markus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 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