我的作业中需要用两个窗体:MainForm主窗体和NodeForm新建节点窗体(MainForm主窗体完成主要逻辑操作,NodeForm新建节点窗体获取用户输入)
点击MainForm中的按钮打开NodeForm,然后当用户点击NodeForm窗体的一个按纽(OK)时,MainForm从NodeForm窗体的编辑框中获取用户输入的数据,NodeForm窗体关闭;
应该在MainForm中use NodeForm,而从NodeForm中返回数据又可能需要use MainForm,这样就产生循环引用的问题,这个如何解决呀,谢谢大家了!
点击MainForm中的按钮打开NodeForm,然后当用户点击NodeForm窗体的一个按纽(OK)时,MainForm从NodeForm窗体的编辑框中获取用户输入的数据,NodeForm窗体关闭;
应该在MainForm中use NodeForm,而从NodeForm中返回数据又可能需要use MainForm,这样就产生循环引用的问题,这个如何解决呀,谢谢大家了!
//这里写你要引用的单元。
Unit NodeForm...
private
bReturn: Boolean; var
...
function OpenNodeFrm(var Text:string):Boolean;implementationfunction OpenNodeFrm(var Text:string):Boolean;
var
aNodeFrm: TNodeFrom;
begin
try
aNodeFrm := TNodeFrom.Create(nil);
aNodeFrm.ShowModal;
aNodeFrm.Edit1.Text := Text;
Result := aNodeFrm.bReturn;
finally
aNodeFrm.Free;
aNodeFrm := nil;
end;
end;...
//在MainForm单元里引用这个函数就可以了
Unit MainFormuse
NodeForm;...procedure TMainFrom.Button1Click(Sender: TObject);
begin
ShowMessage(OpenNodeFrm(''));
end;
var
mTxt:string;
begin
mTxt := '';
if OpenNodeFrm(mTxt)) then
ShowMessage(mTxt);
end;
aNodeFrm.Edit1.Text := Text;
改成
Text := aNodeFrm.Edit1.Text;