为什么我写的控件只能在设计模式下可行,而运行应用程序时对字体的设置无效.(100分)

  • 主题发起人 主题发起人 hzjone
  • 开始时间 开始时间
H

hzjone

Unregistered / Unconfirmed
GUEST, unregistred user!
如题.
procedure TMoveButton.SetFont(value:TFont);
begin
if FFont<>value then
begin
FFont.Assign(Value);
FFirst.Font.assign(value);
end;
Invalidate;
end;
 
自己开发控件后,在使用控件前要在运行系统中注册控件哦.
 
哈哈.这个当然要做了.有遇过的跟我说一下,分数还可以加.
 
设计时看看DFM里有没有保存Font
 
还是不行.
 
if FFont<>value then
把这个去掉,你试试,,,
 
不仅是字体 Font ,还可能包括颜色 Color 等。
这种类型的问题在 ActiveX 构件的开发中曾经非常突出的暴露过。没有什么太好的解决方法,跟踪调试发现,默认 Font、Color 等接口方法的调用机制有些复杂。我们的解决方法是:定义另外的接口方法,如 ViewFont、ViewColor 等,这样就可以解决了。
 
我改成btnfont也是一样
 
parentfont:=False
parentcolor:=false;
 
找不到答案,结贴了...
 
在运行期直接调用该控件的setfont来设置有效吗?

FFirst.Font.assign(value);
FFirst是什么东西?是不是应该为 self.Font.assign(value);
 
后退
顶部