Как изменить размер шрифта Delphi XE6 IDE
Как я могу изменить размер шрифта самой IDE Delphi XE6.
диалоги IDE не используют мои предпочтения шрифта Windows, и я не могу найти никакой возможности изменить шрифт, используемый IDE.
кроме того, как получить 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, предварительного просмотра: