![]() |
DPI / Scaled / ScaleForm
Hallo zusammen,
habe wiedereinmal das leidige Thema der Skalierung einer Anwendung!!! Mein Ziel: Eine Anwendung soll bei jeder Auflösung und bei jeder eingestellten Schriftart nahezu gleich aussehen. Eigentlich ganz einfach! Meine Entwicklungseinstellungen: Auflösung -> 1152 * 864 DPI -> 96 Meine Versuche: 1)
Delphi-Quellcode:
Test mit 104dpi und 1280*960
procedure ScaleForm(F: TForm);
var ScreenWidth, ScreenHeight: LongInt; begin ScreenWidth:=1152; ScreenHeight:=864; F.Scaled := True; F.AutoScroll := False; if (Screen.Width <> ScreenWidth) then begin F.Height := LongInt(F.Height) * LongInt(Screen.Height) div ScreenHeight; F.Width := LongInt(F.Width) * LongInt(Screen.Width) div ScreenWidth; F.ScaleBy(Screen.Width,ScreenWidth); end; end; Ergebnis: Fenster wird korrekt dargestellt, jedoch die Controls sind viel zu groß! 2)
Delphi-Quellcode:
Ergebnis: Geht auch nicht bei allen Kombinationen aus dpi und Auflösung
procedure TtfStart.FormCreate(Sender: TObject);
var dc:HDC; begin dc:=GetDC(0); if not(GetDevicecaps(dc,LOGPIXELSX)=96)then self.scaleby(96,GetDevicecaps(dc,LOGPIXELSX)); ReleaseDC(0,dc); end; 3)
Delphi-Quellcode:
Geht auch nicht!!
Scaled:=True;
HILFEEE, kann mir jemand helfen wie ich die Anwendung unabhängig von dpi und Auflösung hinbekomme. Fragen: 1) Muss ich die Themen dpi und Auflösung getrennt bearbeiten ? 2) Kann mir jemand die zusammenhänge näher erklären? |
Re: DPI / Scaled / ScaleForm
versuche mal das hier:
![]() |
Re: DPI / Scaled / ScaleForm
Dort steht doch genau das was ich oben schon versucht habe!
Das funktioniert aber nicht unter allen Auflösungen/dpi Einstellungen !!! Soll ich jetzt einfach Hinweise bringen dass der Anwender die DPI ändern soll um mit dem Prog arbeiten zu können? Das gibts doch nicht, andere Programme sehen doch auch bei allen Kombinationen korrekt aus. Bitte um weitere Vorschläge..... |
Re: DPI / Scaled / ScaleForm
Ich stehte vor dem gleichen Problem. Hast Du inzwischen eine Lösung?
Problematisch sind bei mir z.B. auch Controls, die mit Align right true und left false eingestellt sind. die verschwinden dann immer vom Formular nach rechts. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 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 by Thomas Breitkreuz