Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schriftgröße des Hauptmenüs verändert sich (https://www.delphipraxis.net/215533-schriftgroesse-des-hauptmenues-veraendert-sich.html)

kdf 23. Jul 2024 10:35

Delphi-Version: 10 Seattle

Schriftgröße des Hauptmenüs verändert sich
 
Hallo,

ich habe in der *.dproj vor der Initialisierung das Menüe angepasst

screen.MessageFont.Size := 12;
screen.HintFont.Size := 12;
screen.MenuFont.Size := 12;
Application.Initialize;

Das funktioniert so ansich einwandfrei. Jedoch ändert sich der Parameter screen.MenuFont.Size nach unbestimmter Zeit wieder auf den Standardwert 8 oder 9. Den gesetzten Wert gibt es dann wieder mit einem Neustart des Clients.

Wie kann man dieses nachträgliche Überschreiben verhindern?

Gruß

K.-D.

jaenicke 23. Jul 2024 11:11

AW: Schriftgröße des Hauptmenüs verändert sich
 
Wie wäre es ganz einfach mit einem Datenhaltepunkt? Damit solltest du doch sehr schnell sehen, wann und warum sich der Wert ändert.

Uwe Raabe 23. Jul 2024 11:28

AW: Schriftgröße des Hauptmenüs verändert sich
 
Das kann passieren, wenn die Applikation eine passende WM_SETTINGCHANGE Message bekommt und die Fonts erneut aus Windows übernimmt. Man kann das verhindern, indem man
Delphi-Quellcode:
Screen.UpdateMetricSettings := False
setzt, bekommt dann aber eventuell auch noch andere Änderungen nicht mehr mit.

Alternativ kannst du auch im MainForm einen Message-Handler für CM_SYSFONTSALLCHANGED einbauen und dort den Screen.MenuFont wieder passend setzen.

Papaschlumpf73 23. Jul 2024 13:53

AW: Schriftgröße des Hauptmenüs verändert sich
 
Das wollte ich jetzt auch mal ausprobieren und habe die paar Zeilen von kdf in die Projektdatei eingefügt. Bei mir passiert da aber gar nichts; die Werte werden komplett ignoriert. Woran kann das liegen?

kdf 23. Jul 2024 14:01

AW: Schriftgröße des Hauptmenüs verändert sich
 
Screen.UpdateMetricSettings := false;
kann ich nicht eingeben.

Application.UpdateMetricSettings := false;
war das so gemeint?

kdf 23. Jul 2024 14:10

AW: Schriftgröße des Hauptmenüs verändert sich
 
Zitat:

Zitat von Papaschlumpf73 (Beitrag 1539135)
Das wollte ich jetzt auch mal ausprobieren und habe die paar Zeilen von kdf in die Projektdatei eingefügt. Bei mir passiert da aber gar nichts; die Werte werden komplett ignoriert. Woran kann das liegen?

begin
screen.MessageFont.Size := 12;
screen.HintFont.Size := 12;
screen.MenuFont.Size := 12;
Application.Initialize;
....

Glaube, das muß vor Application.Initialize stehen.

Papaschlumpf73 23. Jul 2024 15:07

AW: Schriftgröße des Hauptmenüs verändert sich
 
Zitat:

Zitat von kdf (Beitrag 1539137)
Zitat:

Zitat von Papaschlumpf73 (Beitrag 1539135)
Das wollte ich jetzt auch mal ausprobieren und habe die paar Zeilen von kdf in die Projektdatei eingefügt. Bei mir passiert da aber gar nichts; die Werte werden komplett ignoriert. Woran kann das liegen?

begin
screen.MessageFont.Size := 12;
screen.HintFont.Size := 12;
screen.MenuFont.Size := 12;
Application.Initialize;
....

Glaube, das muß vor Application.Initialize stehen.

Genauso habe ich es auch gemacht. Einfach ein neues Projekt erzeugt und die paar Zeilen eingefügt:
Delphi-Quellcode:
program Project1;

uses
  Vcl.Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  screen.MessageFont.Size := 14;
  screen.HintFont.Size := 14;
  screen.MenuFont.Size := 14;

  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
In Form1 hab ich ein TMainMenu und eine MessageBox und ShowMessage ausprobiert. Hat nach wie vor alles Schriftgröße 9.

himitsu 23. Jul 2024 15:29

AW: Schriftgröße des Hauptmenüs verändert sich
 
Sicher, dass es davor rein muß?
Nicht, dass es erst im Application.Initialize geladen (wieder überschrieben) wird.

Und, wie schon erwähnt, sendet Windows Messages, um sowas im Programm zu aktualisieren, z.B. wenn jemand an den Windowseinstellungen rumspielt, sowie beim Umschalten des Desktops (einloggen/ausloggen/sperren der Nutzersession)

Papaschlumpf73 23. Jul 2024 16:26

AW: Schriftgröße des Hauptmenüs verändert sich
 
Jetzt habe ich die drei Zeilen vor/nach jede Anweisung gepackt. Selbst nochmal unmittelbar vor Application.MessageBox(). Laufzeit-Themes an/aus. Völlig egal, das TMainMenu und die Messagebox-Texte bleiben in Schriftgröße 9. Ist das evtl. bei RDP-Zugriff inaktiv?

himitsu 23. Jul 2024 16:48

AW: Schriftgröße des Hauptmenüs verändert sich
 
Ein aktuelles Delphi verhält sich bei RDP sowieso anders. (Windowes hat da im PE-Header ein Flag, was im aktuellen Delphi gesetzt wird, siehe Projektoptionen)
z.B. wird da auch anders beim DoubleBuffered rumgepfuscht.

Macht da echt wenig Spaß, wenn man die DelphiIDE im RDP laufen hat, weil da dinge in der DFM gespeichert werden, welche eigentlich nur "temporär" zur Laufzeit geändert werden sollten.


Hast du denn mal oben alles richtig durchgelesen?
z.B. die Eigenschaft zum Deaktivieren der Aktualisierung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:13 Uhr.
Seite 1 von 2  1 2      

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