Как изменить размер шрифта Delphi XE6 IDE

Как я могу изменить размер шрифта самой IDE Delphi XE6.

диалоги IDE не используют мои предпочтения шрифта Windows, и я не могу найти никакой возможности изменить шрифт, используемый IDE.

enter image description here

кроме того, как получить Delphi XE6, чтобы соблюдать настройки шрифта пользователя?

2 ответов


нельзя
Шрифт "зашит". Вы не можете изменить его.

вот что я пробовал

1-Изменение BDS.EXE с шестнадцатеричным редактором

если вы откроете BDS.EXE в HEX-редактор, искать TextHeight и измените значения с $0D (13) на что-то большее, затем измененные bds.exe будет выглядеть точно так же.

2 - Использовать EnumChildWindows для спама Delphi IDE с WM_SETFONT сообщения

вы можете послать WM_SETFONT сообщение в Главное окно запущенного Delphi.
Вы должны найти окно, используя FindWindow вызов API.

From:http://msdn.microsoft.com/en-us/library/windows/desktop/ms632642%28v=vs.85%29.aspx

параметр wparam
Дескриптор шрифта (HFONT). Если этот параметр равен NULL, элемент управления использует системный шрифт по умолчанию для рисования текст.
параметр lparam
Слово низкого порядка lParam указывает, должен ли элемент управления быть перерисован сразу после установки шрифта. Если этот параметр имеет значение true, элемент управления перерисовывается.

поскольку вы хотите, чтобы Delphi использовал шрифт по умолчанию, сообщение очень просто.

главное окно Delphi XE6 называется TAppBuilder, поэтому вам придется получить ручку этого окна, используя FindWindow.

Я пробовал это, но это не сработало.

unit Unit4;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm4 = class(TForm)
    FontDialog1: TFontDialog;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form4: TForm4;

implementation

{$R *.dfm}

const
  DelphiWindows: array [1 .. 1] of PWideChar = ('TAppBuilder');

function EnumChildProc(const hWindow: hWnd; const hFont: LParam): boolean; stdcall;
begin
  SendMessage(hWindow, WM_SETFONT, hFont, 1);
  Result:= True;
end;

procedure TForm4.Button1Click(Sender: TObject);
var
  BDSWindow: HWND;
  ChildWindow: HWnd;
  Font: HFONT;
  i: Integer;
begin
  if FontDialog1.Execute then begin
    BDSWindow:= FindWindow(DelphiWindows[1], nil);
    Font:= FontDialog1.Font.Handle;
    EnumChildWindows(BDSWindow, @EnumChildProc, Font);
    ShowMessage('Done');
  end;
end;

end.

Я не пробовал шрифт по умолчанию, потому что шрифт Delphi и шрифт по умолчанию одинаковы в моей системе. И я не хочу менять шрифт по умолчанию.

это изменило 2 dropdown_boxes на моем Delphi. Не очень хороший спектакль.

я разместил это в качестве ответа в надежде, что вы сможете добраться до решения отсюда.


лучший способ сделать это-использовать редактор тем Delphi IDE, это очень просто. Попробуйте в редактор тем Delphi IDE, предварительного просмотра:

enter image description here