访问受保护的属性

偶尔翻Marco Canto的书,看到这个小技巧,记下来,老是忘记这个小技巧。

比如要访问TDBGrid的Col和Row属性,这两个属性是Protected,一般不能直接访问,可以这样加个套:

type

  TFakeDBGrid = class(TDBGrid);


然后:TFakeDBGrid(dbgrid1).Col; TFakeDBGrid(dbgrid1).Row;


还有TControl的Text属性,大部分控件隐藏了或者改名为Caption

type

  TFakeControl = class(TControl);


TFakeControl(Button1).Text;


不过这样做,明显破坏了对象的封装,尽量少用。


注意:在哪个单元用,就得在那个单元声明TFake,才能访问保护属性,这是利用了DELPHI对于private和protected对于同单元可见特性。

但是现在版本有strict private和strict protected ,那就无能为力了。

 

posted @ 2016-07-24 17:04  舞天涯  阅读(141)  评论(0编辑  收藏  举报