![]() |
Form mit Bildschirm Auflösung anpassen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo
einige Kunden verwenden entweder auf gösse Bildschirm-Auflösung oder Sie haben einen Großen Bildschirm (ab 19 zoll). Meine Programm-Größe ist damit zu klein, darum wollen die Leute gerne das Programm skalieren (vergrößern) ! Wer gibt mir einen Tipp, um in solchen Fällen, die Möglichkeit dem User geben das Programm auf seinen Bildschirm anpassen zu können ? Mit dem Code z.B. wird auf Form liegende Objekte skaliert auch Webbrowser:
Delphi-Quellcode:
Das Problem in Code, es gibt 2 Zoomfaktoren:
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.01), Width); end else begin ScaleBy(Round(Screen.MonitorFromWindow(Handle).Height * 1.01), Height); end; WindowState := wsMaximized; // nun webbrowser Inhalt zoomen: WebBrowser1.OleObject.Document.Body.Style.Zoom := 1.25{Zoomfaktor}; end; Einer skaliert Delphi-Objekte Anderer skaliert (zoomt) Webbrowser Content Manch mal wird die Zoomfaktoren nicht identisch Darum suche ich eine andere Lösung |
Re: Form mit Bildschirm Auflösung anpassen
HI,
dein erstes Problem löst du ganz einfach mit Anchors (OI). Dem Webbrowser kannst du wie alle anderen Komponenten mit .ScaleBy vergrößern/verkleinern. Deinen Code versteh ich nicht ganz. Du kannst aber im OI die Eigenschaft WindowState auf wsMaximized setzen und durch die Anchor-Vergrößerung wandern die Komponenten mit. rollstuhlfahrer EDIT: Das Bild dazu ist nicht gerade verständlich |
Re: Form mit Bildschirm Auflösung anpassen
Ich habe nun einen anderen Code genommen
Nun klappt
Delphi-Quellcode:
jetzt habe ich mindestens den selben Zoomfaktor :drunken:
ScaleBy(120, 100); /120%
Form1.Width:=(form1.Width) + (form1.Width div 5); Form1.Height:=(form1.Height) + (form1.height div 5); WebBrowser1.OleObject.Document.Body.Style.Zoom := 1.2; // 120% Ich habe ein kleines Problem: Bei ScaleBy(); wird nur Integer akzeptiert ! Ich muss meine Form gross wie Möglich skalieren d.h. die neue Breite der Form : Form1.Width:=IntToStr(Screen.MonitorFromWindow(Han dle).Width) und dann kann ich den Zoomfaktor berechnen : Zommfaktor = (Screen.MonitorFromWindow(Handle).Width * 100) div Form1.Width wie kann ich diese Form in Delphi eingeben, da er nur Integer akzeptiert? |
Re: Form mit Bildschirm Auflösung anpassen
Schau Dir mal round() und trunc() an.
|
Re: Form mit Bildschirm Auflösung anpassen
Zitat:
das kann mir helfen um die Sache zu vereinfachen :
Delphi-Quellcode:
Round(12.75) = 13
Trunc(12.75) = 12 Int(12.75) = 12 Frac(12.75) = 0.75 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 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