一个简单问题(50分)

  • 主题发起人 主题发起人 阿汀
  • 开始时间 开始时间

阿汀

Unregistered / Unconfirmed
GUEST, unregistred user!
如何使用控件中没有而其所继承的控件有的事件,如DBGrid没有mousedown事件,而
customdbgrid有该事件,我怎样才能在dbgrid中使用这个事件呢?
 
有人知道吗?
 
dbgrid没有mousedown事件是因为它没有在published段把OnMouseDown事件写出来,你可以
自dbgrid继承一个新控件,在published段加入OnMouseDown事件。
 
类型强制转换
用 TCustomGrid(Grid1) 或 (Grid1 as TCustomGrid) 表示父类
 
直接从CustomDBGrid继承不行吗?DBGrid没有提供更多的功能啊!
(不过没看明白你是要自己写控件呢还是单纯使用DBGrid,应该是自己写吧,
可是你的问题又是在“控件 - 使用 ”分类里:)
 
if 必须在设计期间使用 or 要使用的事件是在protected段申明的 then
begin
自己写一个控件TMyDBGrid(从TDBGrid继承)并发布要使用的事件;
使用TMyDBGrid代替TDBGrid
end
else
直接使用;
 
从TDBGrid继承一个控件,然后把它published就可以啦。如:

TMyDBGrid = class(TDBGrid)
published
property OnMouseDown;
end;

procedure Register(...);

就这样就而已。
 
若只想要很少的功能就用Crab的办法,若需要的多的话,还是重写控件吧。
 
多人接受答案了。
 
后退
顶部