比如说我有两个窗体form1和form2,它们都是子窗体,
form2是通过form1上的一个按钮打开的,请问当form2
关闭时如何刷新form1的数据?最好采用消息机制,
也就是说当form2关闭时返回一个消息,当form1收到这个消息后执行一些事件.
form2是通过form1上的一个按钮打开的,请问当form2
关闭时如何刷新form1的数据?最好采用消息机制,
也就是说当form2关闭时返回一个消息,当form1收到这个消息后执行一些事件.
form2.OnClose := form1XXXXX;
form1.xxx:= form2.xxx;
但是我想用消息机制来处理是不是会好一点呢.
我在Data Module一般是只写了一些方法返回olevariant类型。
我的clientDataSet.data只是获取了返回的olevariant.
用消息就要自定义相关的消息,然后定义相关的事件,然后通过PostMessage等函数传递消息
Exit;
if (frmDepartmentShow.ShowModal = mrCancel) and (frmDepartmentShow.bFlag = False ) then
Exit; //执行刷新代码
我做的交易系统管理平台都是这样处理的,就是添加数据后,关闭窗体后,原才窗体刷新一下。
private
procedure WMDosomething(Msg :TMessage); message WM_DOSOMETHING;procedure TForm1.Button1Click(Sender :TObject);
begin
TForm2.Create(Self);//此处限定Form2的Owner(拥有者)为Form1
end;procedure TForm1.WMDosomething(Msg :TMessage);
begin
//Dosomething
end;
----------------------------
procedure TForm2.Close(Sender :TObject);
begin
SendMessage(TCustomForm(Owner).Handle, WM_DOSOMETHING, 0, 0);
end;如此,Form2单元就不必引用Form1单元,Form1单元引用Form2单元即可,不会有交叉引用了