gpt4 book ai didi

delphi - 如何更改Delphi XE6 IDE的字体大小

转载 作者:行者123 更新时间:2023-12-03 14:54:38 24 4
gpt4 key购买 nike

如何更改Delphi XE6 IDE本身的字体大小。

IDE 的对话框未使用我的 Windows 字体首选项,并且我找不到任何选项来更改 IDE 使用的字体。

enter image description here

或者,how do i get Delphi XE6 to honor the user's font preferences?

最佳答案

你不能
字体是硬编码的。你无法改变它。

这是我尝试过的

1 - 使用十六进制编辑器更改 BDS.EXE

如果您在十六进制编辑器中打开 BDS.EXE,查找 TextHeight 并将值从 $0D (13) 更改为更大的值,然后更改bds.exe 看起来完全一样。

2 - 使用 EnumChildWindows 向 Delphi IDE 发送 WM_SETFONT 消息

您可以向正在运行的 Delphi 主窗口发送 WM_SETFONT 消息。
您必须使用 FindWindow API 调用来查找窗口。

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

wParam
A handle to the font (HFONT). If this parameter is NULL, the control uses the default system font to draw text.
lParam
The low-order word of lParam specifies whether the control should be redrawn immediately upon setting the font. If this parameter is TRUE, the control redraws itself.

因为您希望 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字体和默认字体在我的系统上是相同的。而且我不想更改默认字体。

这样做改变了我的 Delphi 上的 2 个 dropdown_boxes。表现不太好。

我将此作为答案发布,希望您能从这里找到解决方案。

关于delphi - 如何更改Delphi XE6 IDE的字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24873218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com