![]() |
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. |
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.
|
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:
setzt, bekommt dann aber eventuell auch noch andere Änderungen nicht mehr mit.
Screen.UpdateMetricSettings := False
Alternativ kannst du auch im MainForm einen Message-Handler für CM_SYSFONTSALLCHANGED einbauen und dort den Screen.MenuFont wieder passend setzen. |
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?
|
AW: Schriftgröße des Hauptmenüs verändert sich
Screen.UpdateMetricSettings := false;
kann ich nicht eingeben. Application.UpdateMetricSettings := false; war das so gemeint? |
AW: Schriftgröße des Hauptmenüs verändert sich
Zitat:
screen.MessageFont.Size := 12; screen.HintFont.Size := 12; screen.MenuFont.Size := 12; Application.Initialize; .... Glaube, das muß vor Application.Initialize stehen. |
AW: Schriftgröße des Hauptmenüs verändert sich
Zitat:
Delphi-Quellcode:
In Form1 hab ich ein TMainMenu und eine MessageBox und ShowMessage ausprobiert. Hat nach wie vor alles Schriftgröße 9.
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. |
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) |
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?
|
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. |
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