Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Formdarstellung abhängig von Windowsfont (https://www.delphipraxis.net/143767-formdarstellung-abhaengig-von-windowsfont.html)

iphi 23. Nov 2009 07:16


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)?

Progman 23. Nov 2009 08:58

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.

Sherlock 23. Nov 2009 09:02

Re: Formdarstellung abhängig von Windowsfont
 
Machen wir genauso...soll ja aber mit WPF ühüüberhaupt kein Problem mehr sein.

Sherlock

iphi 23. Nov 2009 09:35

Re: Formdarstellung abhängig von Windowsfont
 
Zitat:

eingestellte Schriftart überprüft
Wie kann ich die abprüfen?

Was bedeutet WPF

himitsu 23. Nov 2009 09:36

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.

Progman 23. Nov 2009 10:07

Re: Formdarstellung abhängig von Windowsfont
 
Eingestellte Schriftart überprüfen:
Delphi-Quellcode:
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.
ChckFonts in die *.dpr-Datei, bevor die Application intialisiert wird.


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