事件继承(实用),求解~(100分)

  • 主题发起人 主题发起人 summer_core99
  • 开始时间 开始时间
S

summer_core99

Unregistered / Unconfirmed
GUEST, unregistred user!
这是一个继承表格列上面事件的OnEditButtonClick:
procedure TDBGridColumnEh.EditBtnClick(Sender: TObject; var Handled: Boolean);
begin
if not(TDBGridEh(TDBGridColumnEh).DataSource.DataSet.State in [dsEdit, dsInsert]) then //要通过列,可以获取DBGridEh上的DataSource,这样写会出问题,不知为什么
Exit;
 
if not(TDBGridEh(ActiveControl).DataSource.DataSet.State in [dsEdit, dsInsert]) then
exit;
这样的可以的。
不过你加了一个TDBGridColumnEh应该是一个列吧,没用过不太清楚.
 
procedure TDBGridColumnEh.EditBtnClick(Sender: TObject; var Handled: Boolean);
对象是TDBGridColumnEh,所以没有ActiveControl这个属性呀
 
也就是要通过DBGridColumnEh,来获取DBGridEh上的DataSource
 
列应该没有datasource的属性吧!你首先应该找到column的parent,就是grid,再访问Grid的datasource就应该不会出错了
 
是啊,要先找到Column的parent,也就是Grid,但是怎么写呢?
 
if not(TDBGridEh(TDBGridColumnEh(Sender).parent).DataSource.DataSet.State in [dsEdit, dsInsert]) then //要通过列,可以获取DBGridEh上的DataSource,这样写会出问题,不知为什么
Exit;
 
楼上的兄弟,我试过了,if not(TDBGridEh(TDBGridColumnEh(Sender).parent)
没有Parent属性
 
TDBGridColumnEh.grid
 
我很早就已解决,不过谢谢了,分全给你了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部