我想更改爲我的TEdits Texthint灰色。德爾福XE7: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文本而不是HintText。現在我甚至不確定VCL是否暴露了TextHint顏色,或者它是否可以硬編碼。 – SilverWarior
底層Win32 API沒有提示橫幅顏色功能,因此無法將自定義顏色應用於提示橫幅文本。 –