Новый проект Delphi 10.3 Приложение - Манифест - Включить Темы выполнения, DPI DPI Awareness Per Monitor (по умолчанию)
Project uses
Vcl.Styles,
Vcl.Styles.Hooks,
Vcl.Styles.Utils.Forms,
Vcl.Styles.Utils.StdCtrls,
Vcl.Styles.Utils.ComCtrls,
Vcl.Styles.Utils.ScreenTips,
Vcl.Styles.Utils.SysControls,
Vcl.Styles.Utils.SysStyleHook,
Vcl.Styles.Utils.Shadow,
Vcl.Styles.FormStyleHooks
MainForm имеет
procedure TForm24.FormCreate(Sender: TObject);
var Style : TStyleManager.TStyleServicesHandle;
begin
self.font := screen.iconfont;
self.PixelsPerInch := screen.PixelsPerInch;
style:=TStyleManager.LoadFromFile(extractfilepath(paramstr(0))+'Dark Outlet Media.vsf');
tstylemanager.SetStyle(style);
end;
Сначала, если мы запустим это приложениена HIGH DPI мы получаем:
Посмотрите на заголовок
Посмотрите на заголовок - заголовок формы вообще не виден - размер шрифта слишком велик и перегружает область заголовка.
Если мы добавим следующий код в FormCreate, то основное приложение и все другие заголовки выглядят утомленными
StyleDPIAwareness := TStyleDPIAwareness.Create(Self);
StyleDPIAwareness.Parent := Self;
введите описание изображения здесь
Панель заголовка для заголовка формы слишком велика, и шрифт разборчив, но я думаю, что слишком большой.
Первый вопрос: я не могу найти способ установить размер шрифта окна / формы / заголовка, вес шрифта и даже шрифтфамилия.Мы можем установить шрифт по умолчанию для формы, для всех элементов управления в форме, но не для заголовка формы.
Также есть способ уменьшить увеличивающуюся высоту заголовка формы при высоком dpi - поэтому он не такой большой, как сейчас.
Это прекрасно работает в Delphi 10.2 с VCLStyles.Не работает с Delphi 10.3 с или без VCLStyles.