Проблема с заголовком формы / окна в HIGH DPI, Delphi 10.3 и VCLStyles SKIN - PullRequest
0 голосов
/ 05 апреля 2019

Новый проект 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...