Hallo Rolf, Du hättest ja hier mal erwähnen können das Du bereits einen QP gemacht hast, auch wenn der etwas von meinem Abweicht.
Diesen Code ruf ich im FormCreate mit Self auf, alle Controls (ParentFont = True) nutzen dann das was das System hergibt solange man die Font nicht selbst eingestellt hat. Auch eine Größenanpassung wird vorgenommen.
Vielleicht hilft Dir das solange um über die Runden zu kommen bis Embarcadero was unternimmt.
Microsoft wird sicherlich nicht den HKEY ändern da die Gefahr besteht das vorhandene/alte Software damit einen defekt erleidet.
Delphi-Quellcode:
procedure ApplyFontAndScale(aForm: TForm);
var
OldSize : Integer;
Font : TFont;
begin
OldSize := aForm.Font.Size;
if Screen.MessageFont.Size <> OldSize then begin
Font := TFont.Create;
try
Font.Assign(Screen.MessageFont);
Font.Size := OldSize;
aForm.Font := Font;
finally
Font.Free;
end;
aForm.ScaleBy(Abs(Screen.MessageFont.Size), Abs(OldSize));
end else
aForm.Font := Screen.MessageFont;
if aForm.BorderStyle <> bsSizeable then begin
if aForm.Height > Screen.WorkAreaHeight then
aForm.ScaleBy(Screen.WorkAreaHeight, aForm.Height);
if aForm.Width > Screen.WorkAreaWidth then
aForm.ScaleBy(Screen.WorkAreaWidth, aForm.Width);
end;
end;