调用过程的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 胆儿肥
  • 开始时间 开始时间

胆儿肥

Unregistered / Unconfirmed
GUEST, unregistred user!
DataSource的StateChange过程,其声明为:
procedure TForm1.DataSource1StateChange(Sender: TObject);

在FormCreate里可以这样调用:Datasource1StateChange(Sender);

在ADOQuery的AfterScroll过程里,上面写法不能调用,怎么才能调用?
ADOQuery的AfterScroll声明为:
procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);

关于过程的调用方法,可否顺便指点一下?
 
试试:Datasource1StateChange(nil)
 
行,能用,分数给你,能否说说道理?
 
看看FormCreate过程的声明, procedure TForm1.FormCreate(Sender: TObject);
其中Sender作为参数已经在FormCreate中有声明,所以可以使用,但procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
中没有Sender,所有Datasource1StateChange(Sender);调用就错了,因为找不到其中的Sender
可以用Datasource1StateChange(Self);其中的Self代表Form1,相当于

这样也行
procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
Datasource1StateChange(DataSet); //DataSet就是上面一行括号中的
end;

当然,如果要在过程中处理Sender参数的话就不能随便用了。
 
谢谢指教.
 
后退
顶部