如何更改 a 的颜色TDateTimePicker
?
A 日期和时间选择器可以有一种颜色:
通常这是通过设置来完成的Color:
procedure TForm1.FormCreate(Sender: TObject);
begin
DateTimePicker1.Color := clLime;
end;
但是当使用版本6时日期和时间选择器控件 http://msdn.microsoft.com/en-us/library/windows/desktop/bb761727(v=vs.85).aspx,颜色不再有效:
我尝试使用SetWindowTheme
禁用的样式TDateTimePicker
:
procedure TForm1.FormCreate(Sender: TObject);
begin
UxTheme.SetWindowTheme(DateTimePicker1.Handle, '', '');
DateTimePicker1.Color := clLime;
end;
但这只是让它生气:
如何更改 a 的颜色日期时间选择器?
我本来打算修补 VCL:
procedure TDateTimePicker.CreateWnd;
var
LChecked: Boolean;
begin
LChecked := FChecked;
inherited CreateWnd;
SetChecked(LChecked);
if Length(FFormat) > 0 then
DateTime_SetFormat(Handle, FFormat);
//20140911 Fix the .Color property not working
if Self.HandleAllocated then
Winapi.UxTheme.SetWindowTheme(Self.Handle, '', '');
end;
但禁用窗口主题并不能解决这个问题。
奖金喋喋不休
您可以更改版本 6 的颜色TComboBox
主题样式仍然适用于它:
因此,这不是通用控件版本 6 或视觉样式的根本限制。
复制?
我想不是。
- 该问题涉及如何使日期时间选择器遵循活动的 Delphi 样式
- 这个问题涉及制作日期时间选择器的热门问题not尊重活跃的德尔福风格
这些问题的答案不会让你改变颜色;这就是我需要做的。
更荒谬的是,建议这些答案适用,因为 Style Hooks 仅在您使用非标准(Delphi)样式时才执行任何操作。