![]() |
Formdarstellung abhängig von Windowsfont
Hallo,
ich habe folgendes Problem: Ich habe meine Delphi7-Forms im klassischen Windows-Style und mit normaler Windows-Schriftgröße designed. Einige Controls habe ich mit Anchor Bottom an den unteren Fensterrand fixiert. Wenn Anwender mit hochauflösenden Monitoren Windows auf große Fonts umschalten (und ggf. andere Styles aktivieren), dann rutschen solche Controls u.U. aus dem sichtbaren Form-Bereich heraus. Auch ist dann die Plazierung der anderen Controls nicht mehr stimmig. Gibt es für dieses Problem eine Lösung, ohne alle Controls ständig dynamisch zu plazieren (riesen Programmieraufwand)? |
Re: Formdarstellung abhängig von Windowsfont
Dieses Problem hatten wir auchmal, als eine E-Mail mit einem Screenshot beim Support einging, auf dem das ganze Programm total "verschraubt" war ;)
Seitdem wird beim Programmstart die eingestellte Schriftart überprüft und gegebenenfalls einfach ein Hinweis angezeigt, dass das Programm die Einstellung "kleine Schriftarten" erfordert. Natürlich könnte man nach Überprüfung auch versuchen, alles umzurechnen. Aber auf Grund der geringen Zahl, wo dieses Problem auftauchte, haben wir uns diesen Mehraufwand erspart und begnügen uns mit einem schlichten Hinweis. |
Re: Formdarstellung abhängig von Windowsfont
Machen wir genauso...soll ja aber mit WPF ühüüberhaupt kein Problem mehr sein.
Sherlock |
Re: Formdarstellung abhängig von Windowsfont
Zitat:
Was bedeutet WPF |
Re: Formdarstellung abhängig von Windowsfont
Das Problem mit den Ancors und anderen Positionierungsproblemen ist, daß die VCL diese nicht anpaßt, wenn die Unterschiede schon vor Erstellen/Laden der Form existieren.
Genauso ein Problem ist, wenn die Rahmen größer sind, da Delphi zum Erstellen die äußere Fenstergröße und nicht die des Clientbereichs nutzt :wall: Für Letzteres reicht es aber, wenn man alles in ein Panel verfrachtet und dieses Panel auf alClient einstellt. |
Re: Formdarstellung abhängig von Windowsfont
Eingestellte Schriftart überprüfen:
Delphi-Quellcode:
ChckFonts in die *.dpr-Datei, bevor die Application intialisiert wird.
unit CheckF;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; function SmallFonts : Boolean; procedure ChckFonts; implementation function SmallFonts : Boolean; var dc: hdc; begin dc:= GetDC(0); Result := (GetDeviceCaps(dc, LOGPIXELSX) = 96); ReleaseDC(0, DC) end; procedure ChckFonts; begin if not SmallFonts then begin if MessageDlg('Dieses Programm erfordert die Einstellung "Kleine Schriftarten"! Soll es trotzdem gestartet werden?', mtWarning,[mbYes,mbNo],0)=mrNo then Halt(0); end; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 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