应用软件里基本信息设置的处理方法

来源:互联网 时间:1970-01-01

 在应用软件中,,有大量的基本信息设置窗体,如:部门设置,人员设置等。

问题:

Form1窗体上有增加,修改,删除按钮和一个dbgrid表格。点击增加按钮,弹出form2增加内容窗体,

在form2上有个追加选项框,可以一直增加而不用退出form2窗体。

不知道大家是如何处理form1窗体和form2窗体之间的的内容同步呢?

当然了,方法有一大堆。怎么写都会实现这个功能。

下面我就说一下我的处理方法:

公共单元中定义一个方法类型 TSimpleEvent=procedure (pUTObject:TObject) of object;

form1窗体增加一个过程 procedure AppendType(Sender:TObject);

form2中顶一个TSimpleEvent方法类型的变量AEvent;

在form1中点击增加按钮后的代码:

var VFrm2: TFrm2;begin VFrm2:=TFrm2.Create(self); VFrm2.AEvent:=AppendType; VFrm2.ShowModal; VFrm2.Free;end;
 

这样在form2中点击保存后,调用AEvent方法,也就是调用指定的form1的AppendType。

这样可以实现form2窗体中不用饱含任何一个窗体,这个窗体类是独立的。

程序的其它地方都可以调用form2,如果需要调用者保持同步,调用者给form2的AEvent赋值。 

form2中点击保存以后:

if Assigned(AEvent) then AEvent(VUTType);

form1的AppendType(Sender:TObject);

procedure TFrm1.AppendType(Sender: TObject);begin CLDSType.Append; CLDSType.FieldByName('Num').AsString:=TUTType(Sender).Num; CLDSType.FieldByName('Name').AsString:=TUTType(Sender).Name; CLDSType.FieldByName('SetsValue').AsInteger:=TUTType(Sender).SetsValue; CLDSType.FieldByName('BeginDate').AsDateTime:=StrToDate(TUTType(Sender).BeginDate); CLDSType.FieldByName('EndDate').AsDateTime:=StrToDate(TUTType(Sender).EndDate); CLDSType.Post;end;


相关阅读:
Top