搜索未果,只好再次请教大家。在派生类中能否将父类中已published或public的属性(property)给屏蔽调,就是不让其出现在属性浏览器中,而且也不能通过代码调用。
如果是要通过重新声明一个来替换调父类的相应方法,那我实现组件的过程中如何调用父类的相应方法(我只是想对用户隐藏该属性),但是我自己需要用到该属性。请问大家我如何实现?
如果是要通过重新声明一个来替换调父类的相应方法,那我实现组件的过程中如何调用父类的相应方法(我只是想对用户隐藏该属性),但是我自己需要用到该属性。请问大家我如何实现?
招聘高级软件工程师1名!
要求如下:
1、 本科以上学历、高级软件工程师
2、 精C、C++语言和Windows编程
待遇
年薪20万,其它待遇面议
另::有意者请带简历来我公司面试!北京骎露科技有限责任公司
网 址:www.xinlo.com
电 话: 010-80634884 010-68403196
传 真: 010-68403198
Q Q : 286809529
E mail : [email protected]
地 址: 北京市海淀区西三环北路21号久凌大厦北楼805
附近车站:为公桥、魏公村西口
public或published的属性不能被隐藏,只能包装。另一个方法是看看是否可以直接从其父类继承,很多VCL中的类都可以这样继承。例如,可以从TCustomTreeView而不是TTreeView继承,就可以有选择性地发布一些属性了。
用inherited关键字即可。例:
TMyButton = class(TButton)
private
procedure SetWidth(const Value: integer);
function GetWidth: integer;
published
property Width:integer read GetWidth write SetWidth;
end;
...
function TMyButton.GetWidth: integer;
begin
result := inherited Width;
end;procedure TMyButton.SetWidth(const Value: integer);
begin
inherited Width := Value ;
showmessage(inttostr(value));
end;
又继承类公布属性
参考:TCustomEdit->TEdit看来手术只能在父类动了
private
FAlign: TAlign;
FContainer: TScrollBox;
。其中这个FContainer: TScrollBox;
我是用来作本类的容器的,Create方法是这样写的
constructor TBrxDrawGrid.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FContainer := TScrollBox.Create(AOwner);
FContainer.Parent := TWinControl(AOwner);
FContainer.Align := alNone;
Parent := FContainer;
。。当作为空间托到窗体上时分家成两个控件了,但是在注册成控件之前动态创建测试却是正常的。想不明白为什么?还有这种用自己一个变量元素作为自己容器的方法对不对,可取吗,要是可以,我的构造函数是否存在问题呢?