请问Delphi中的单元是不是UML中的包,两个单元间的互相引用如何避免?
经常会出现两个窗体之间要互相包含,例如
单击父窗体的按钮弹出一个对话窗体,在对话窗体上修改参数,来改变父窗体的某文本框的值,
我都是用两个窗体互相引用来做的,但总觉得违反了低耦合原则,
当然也可以用公共变量来回传值,但也觉得挺别扭
不知各位有什么高招没有?
经常会出现两个窗体之间要互相包含,例如
单击父窗体的按钮弹出一个对话窗体,在对话窗体上修改参数,来改变父窗体的某文本框的值,
我都是用两个窗体互相引用来做的,但总觉得违反了低耦合原则,
当然也可以用公共变量来回传值,但也觉得挺别扭
不知各位有什么高招没有?
2.两个窗体之间可以传递参数。可以通过子窗体的formcreate方法来传递var 变量,或者子窗体返回参数值。
前提是子窗体是动态创建,而不是使用Delphi为你自动生成的form1变量。
procedure TMainFormButtonClick(Sender: TObject);
var
dialog: TXXXDialog;
begin
dialog := TXXXDialgo.Create(Self);
try
if dialog.ShowModal = mrOk then
begin
//在这里读取对话框上的值,修改父窗体的值。
end;
finally
dialog.Free;
end;
end;