胆 胆儿肥 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-24 #1 子窗体用showmodal打开,关闭时(OnDestroy))调用主窗体的事件(不想用消息机制),这个事件涉及到数据操作和显示(ADOQuery和DBGrid),试过自定义过程和Button事件都不行,感觉好象这个事件不操作主窗体才行得通,比如弹出一个消息窗口之类的.请教各位!(分数不多了请见谅)
子窗体用showmodal打开,关闭时(OnDestroy))调用主窗体的事件(不想用消息机制),这个事件涉及到数据操作和显示(ADOQuery和DBGrid),试过自定义过程和Button事件都不行,感觉好象这个事件不操作主窗体才行得通,比如弹出一个消息窗口之类的.请教各位!(分数不多了请见谅)
L lawler Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-24 #2 你要这样做,比如: 先定义几个全局变量用于在主窗体和子窗体间传递数据 var s:string; ... ... 然后在主窗体按钮中: childform.showmodule=mbok then showmessage(s);
你要这样做,比如: 先定义几个全局变量用于在主窗体和子窗体间传递数据 var s:string; ... ... 然后在主窗体按钮中: childform.showmodule=mbok then showmessage(s);
胆 胆儿肥 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-24 #3 全局变量是有的,后面是childform.showmodule=mbcancel then...吗?
L lawler Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-24 #4 var s:string; ... ... 然后在主窗体按钮中: if childform.showmodule=mbok then showmessage(s) //如果点击了模态窗体的确定 else ...... 要注意,子窗口上的确定按钮modalResult属性应该设定为mrOk
var s:string; ... ... 然后在主窗体按钮中: if childform.showmodule=mbok then showmessage(s) //如果点击了模态窗体的确定 else ...... 要注意,子窗口上的确定按钮modalResult属性应该设定为mrOk
W wooiguo Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-24 #6 假设你的主窗体为Form1,Form2为动态生成的窗体。Form2上面又两个Button,他们的ModalResult属性分别为:mrOK和mrCancel。这样,通过判断Form2的ModalResult属性就可以知道用户点了哪个Button,你就不用在Form2的ButtonClick事件里面写代码判断了。有时候,你都完全不必在Form2单元中写任何代码。 简单的例子: procedure TForm1.Button1Click(Sender: TObject); var Form2: TForm2; mr: TModalResult; begin Form2 := TForm2.Create(Self); try mr := Form2.ShowModal; case mr of mrOK: ShowMessage('OK'); mrCancel: ShowMessage('Cancel'); end; finally FreeAndNil(Form2); end; end;
假设你的主窗体为Form1,Form2为动态生成的窗体。Form2上面又两个Button,他们的ModalResult属性分别为:mrOK和mrCancel。这样,通过判断Form2的ModalResult属性就可以知道用户点了哪个Button,你就不用在Form2的ButtonClick事件里面写代码判断了。有时候,你都完全不必在Form2单元中写任何代码。 简单的例子: procedure TForm1.Button1Click(Sender: TObject); var Form2: TForm2; mr: TModalResult; begin Form2 := TForm2.Create(Self); try mr := Form2.ShowModal; case mr of mrOK: ShowMessage('OK'); mrCancel: ShowMessage('Cancel'); end; finally FreeAndNil(Form2); end; end;
L lisongmagic Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-24 #7 我不知道你说的是什么意思,凭感觉好像是主窗体与showmodal子窗体变量传递的问题, 因为这个我以前遇过。我当时是这么写的程序: procedure TForm1.Button1Click(Sender: TObject); var childForm: TForm2; begin childForm:= TForm2.create(nil); try childForm.MyShowModal(param1)//这是我自己写的ShowMadal函数,靠param1传参数 finally childForm.free; end; end; procedure TForm1.MyShowModal(param1); begin ...//注意:我是在这里进行参数的传递的 inherited ShowModal;//然后再调用系统的ShowModal函数,显示子窗体 end; 我想你的问题可能会合我当时的差不多,供参考
我不知道你说的是什么意思,凭感觉好像是主窗体与showmodal子窗体变量传递的问题, 因为这个我以前遇过。我当时是这么写的程序: procedure TForm1.Button1Click(Sender: TObject); var childForm: TForm2; begin childForm:= TForm2.create(nil); try childForm.MyShowModal(param1)//这是我自己写的ShowMadal函数,靠param1传参数 finally childForm.free; end; end; procedure TForm1.MyShowModal(param1); begin ...//注意:我是在这里进行参数的传递的 inherited ShowModal;//然后再调用系统的ShowModal函数,显示子窗体 end; 我想你的问题可能会合我当时的差不多,供参考
胆 胆儿肥 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-24 #8 不是主窗体与showmodal子窗体变量传递的问题. 我用wooiguo的办法解决了.分数少但心里非常谢谢各位!