模式窗体 返回值异常
我有个模式窗体,没有包含报表,只是父窗体有报表,调试的时候,怎么会跳到FrxDBSet去。
还有就是,模式窗体:
- Delphi(Pascal) code
procedure TFrm_GH.btnQuitClick(Sender: TObject);begin// inherited; ModalResult := mrIgnore; ShowMessage(IntToStr(mrIgnore)); Close;end;procedure TFrm_GH.DBGridSingleDblClick(Sender: TObject);begin P_GH_Blh := Query_GH.FieldByName('blh').AsString; P_GH_Hzxm := Query_GH.FieldByName('hzxm').AsString; P_GH_Ghrq := Query_GH.FieldByName('ghrq').AsString; ModalResult := mrOk; Close;end;主窗体,ShowMessage(IntToStr(Int_Result)+'a');//返回值都是2
- Delphi(Pascal) code
procedure TFrm_Appoint.Edit_MNoDblClick(Sender: TObject);var Int_Result:Integer;begin Frm_GH := TFrm_GH.Create(Application); Int_Result := Frm_GH.ShowModal ; ShowMessage(IntToStr(Int_Result)+'a');//返回值都是2 if Int_Result = mrOk then begin Edit_MedicalName.Text := P_GH_Hzxm; Edit_MedicalNo.Text := P_GH_Blh; endend;
模式窗体上有表格,相应值会返回到全局变量。
模式窗体是继承过来的,在CLOSE中,没有改变modelResulet这个值啊?
[解决办法]
可能在传递参数有问题吧
[解决办法]
或许是你使用ModalResult 这个属性时,父窗口也有这个属性造成混乱所至,直接用数值变量保存看盾
[解决办法]
1.用了frx报表,调试的时候任何有关报表的代码变化了,是要进入frx源码的了,比如dataset改变了
可以用断点方式调试跳过执行源码
2.mrOk是1,mrIgnore是5,默认的close是2;看看你的代码,模式窗体2个按扭最后都是close
(用了ModalResult就不要再close了,是多余的),所以返回的就是2,所以Int_Result=2但mrOk=1
当然条件永远都不成立了