RX这样用都不行,真是奇怪?都来看看!(100分)

  • 主题发起人 主题发起人 ylbee
  • 开始时间 开始时间
Y

ylbee

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个mainform和一个datamoudle,在datamoudle中想通过判断mainform中一个按钮的状态,做相应的操作,代码如下:
procedure Tdatamoudle.PdataQueryAfterPost(DataSet: TDataSet);
begin
if MainForm.RxSwitch1.StateOn then exit; // 1 出错
pDataQuery.ApplyUpdates;
end;

现在每次执行到1处出错,显示:access violation at address 04691684 in moudle 'a.dll' . Read of address 00000847.

是否我们不能在2个form间访问控件?有什么简单办法解决?
 
是MainForm的指针没有传进来,
可以在MainForm中写一个过程:
procedure TMainForm.CustomQueryAfterPost(DataSet: TDataSet);
begin
if RxSwitch1.StateOn then exit; // 1 出错
datamoudle.pDataQuery.ApplyUpdates;
end;
然后在MainForm的OnCreate事件中加入:
datamoudle.pDataQuery.AfterPost := CustomAfterPost;
即可
 
后退
顶部