为什么动态 创建的 HINT 不能设置 字体的颜色???????????? 急!!!!!!!!!!
为什么动态 创建的 HINT 不能设置 字体的颜色???????????? 急!!!!!!!!!!
代码如下 :
var
r : TRect;
begin
with r do
begin
left:=form1.Left+button1.Left;
top:= form1.top+button1.top;
right :=left+ 180;
bottom :=top+ 19;
end;
h.Canvas.Font.Style:=[fsbold];
h.Canvas.Font.Name:='宋体';
h.Canvas.Font.Size:=13;
//下面已经设置了 字体的颜色 为红色 !!!
h.Canvas.Font.Color:=clred;
with h do
begin
//显示HINT
ActivateHint( r, '√ 提示: 请输入日期!' );
end;
===================================
但显示出来的字体还是黑色!!!
问题点数:40、回复次数:6Top
1 楼hawksoft(明月清风)回复于 2005-03-12 11:56:56 得分 10
如果你要改变提示的颜色,你需要自定义一个Hint类,覆盖系统默认的THintWindow类。
同时设置HintWindowClass的值为你的HintWindow类。Top
2 楼fsqman(q)回复于 2005-03-12 12:12:52 得分 0
我已经在FormCreate定义了THintWindow类
procedure TForm1.FormCreate(Sender: TObject);
begin
h := THintWindow.Create( Self );
end;
如何设置HintWindowClass??
Top
3 楼hawksoft(明月清风)回复于 2005-03-14 10:50:57 得分 10
你可以查看THintWindow的原代码看看。具体做法是你可以从THintWindow继承来创建自己的新的Hint类,然后重载其paint方法。也可以参考THintWindow源代码Top
4 楼hawksoft(明月清风)回复于 2005-03-14 10:53:00 得分 0
HintWindowClass是个全局变量,不需要创建你的HintWindow类的实例,只要把你的类名赋给它就可以了。如你的HintWindowClass := TMyHintWindow;Top
5 楼lianshaohua(永远深爱一个叫“...”的好女孩儿!)回复于 2005-03-14 13:16:55 得分 10
那样改只能改变HINT显示的底色,不能改变字体大小和颜色,只因系统有一个类,你可以自己定义一个然后把它盖掉Top
6 楼sephil(NAILY Soft 【哈里波特大】)回复于 2005-03-14 13:27:52 得分 10
自己实现一个继承自THintWindow类
THintWindow本身不支持换字体的Top




