给Delphi自带的控件添加属性后,如何才能在属性栏中显示?(50分)

  • 主题发起人 主题发起人 pnljh
  • 开始时间 开始时间
P

pnljh

Unregistered / Unconfirmed
GUEST, unregistred user!
闲着没事,给TBitBtn添加了一个颜色属性,结果只能在代码中赋值
BitBtn.color:=clRed,在设计时的属性栏里见不到,如何才能让它显示呢?
我试过修改后添加新控件,继承TBitBtn,这样新控件可以显示,
但我想让原来的控件显示,怎么做?
 
在published下面声明一下即可.
 
对,在published下面声明一下!
 
这都问出来了,靠
 
我也正想问这个问题呢[:)][:)][:D]
 
你可以看已经有的属性怎么做的嘛
照葫芦画瓢
 
weiwei81123,Elite_liu都说了

在published下面声明一下你要公布的属性,你就会在Object Inspector窗口看到这些属性
 
我早就在published里写了以下:
property Color:Tcolor read GetColor Write SetColor default clBtnFace;
编译通过,但就是不能在属性栏里显示,我修改的是Buttons.pas单元,改后的dcu
文件也复制到lib下了。
 
你要从新编译tbitbtn所在的包了
 
如何改写控件?
还望不吝赐教。。。
谢谢!
 
看看bitbtn的其它属性是怎么声明 的
照葫芦画瓢便可
 
属性的声明肯定是没错的。
重新编译dclusr.dpk后还是没有显示。好像Delphi自带的控件只有源码,没有控件包可编译
 
>>我试过修改后添加新控件,继承TBitBtn,这样新控件可以显示,
>>但我想让原来的控件显示,怎么做?
这是不可能实现的,Delphi的设计包不会让你乱改的(Delphi启动后设计包就已经加载了),你只能注册成新的控件。
 
同意THX1180,自己做个控件吧
 
看来是只有在程序中赋值了。
不过这样也好,我在父类窗体中写一小段代码就可以把所有窗体的Bitbtn换了颜色。
不要的时候随时可以换回来。
 
不知道是不是要把color 在create 里面实例化或者赋初值啊
我之前试过的一个控件属性就是要实例化,或者给它先赋初值才出来的
 
请看下面:
TmyClass=class(TParentClass);
private
FColor:TColor;
procedure SetColor(const clr:TColor);
.........
published
property Color:TColor read FCOlor write SetCOlor;default clBtnFace;
..........
procedure TMyColor.SetColor(const clr:TColor);
begin
if FColor<>clr then begin
FColor:=clr;
Invalidate;
end;
end;
//that's all
 
多人接受答案了。
 
后退
顶部