How to change the font size of the Delphi XE6 IDE

How to change the font size of the Delphi XE6 IDE itself.

The IDE dialogs do not use my Windows font setting, and I cannot find any option to change the font used by the IDE.

enter image description here

Alternatively, how can I make Delphi XE6 comply with user font preferences?

+6
source share
2 answers

You can not
The font is hard-coded. You cannot change it.

Here is what I tried

1 - Change BDS.EXE using the HEX editor

If you open BDS.EXE in a HEX editor, find TextHeight and change the values ​​from $ 0D (13) to something more, and the modified bds.exe will look exactly the same.

2. Use EnumChildWindows to spam in Delphi using WM_SETFONT messages

You can send the WM_SETFONT message to the main Delphi window.
You must find the window using the FindWindow API call.

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

WPARAM
Font pen (HFONT). If this parameter is NULL, the control uses the system default font to draw text.
LPARAM
The lParam low word indicates whether the control should be redrawn immediately after the font is installed. If this parameter is TRUE, the control redraws itself.

Since you want Delphi to use the default font, the message is really simple.

The main Delphi XE6 window is called TAppBuilder , so you will need to get a handle to that window using FindWindow .

I tried this, but it did not work.

 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. 

I have not tried the default font, because the Delphi font and the default font on my system are the same. And I do not want to change the default font.

Doing this changed 2 dropdown_boxes on my Delphi. Not a very good show.

I posted this as an answer in the hope that you can get a solution from here.

+1
source

The best way to do this is to use the Delphi IDE section editor, which is very simple. Try the Delphi Partition Editor , preview:

enter image description here

0
source

Source: https://habr.com/ru/post/972612/


All Articles