gpt4 book ai didi

德尔福XE7 : TEdit TextHint Color

转载 作者:行者123 更新时间:2023-12-03 15:47:49 25 4
gpt4 key购买 nike

我想将我的 TEdit 的 Texthint 更改为灰色。

我已经找到了这个https://stackoverflow.com/a/31550017/1862576并尝试通过 SendMessage 更改颜色,如下所示

procedure TEdit.DoSetTextHint(const Value: string);
var
Font: TFont;
begin
if CheckWin32Version(5, 1) and StyleServices.Enabled and HandleAllocated then
begin
Font := TFont.Create;
try
Font.Assign(self.Font);
Font.Color := clGreen;
Font.Size := 20;

SendTextMessage(Handle, EM_SETCUEBANNER, WPARAM(1), Value);
SendMessage(Handle, WM_SETFONT, Integer(Font.Handle), Integer(True));
finally
// Font.Free;
end;
end;
end;

它改变字体大小,但不改变颜色。感谢您的帮助。

最佳答案

提示横幅是内置于 TEdit 包装的底层 Win32 EDIT 控件中的一项功能。它根本不受 VCL 管理。没有公开的 Win32 API 来管理提示横幅文本的颜色。如果您想要自定义颜色,则必须停止使用 native 提示横幅功能,并通过直接处理其 WM_ERASEBKGND 和/或 WM_PAINT 消息来手动自定义绘制编辑控件(参见 How do i custom draw of TEdit control text? )。否则,您将必须找到支持自定义着色的第三方编辑控件。或者使用 TRichEdit 而不是 TEdit,以便您可以根据需要设置文本颜色。

关于德尔福XE7 : TEdit TextHint Color,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33082582/

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