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


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

    问题:

      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;
    
  • 相关阅读:
    HDU 5441 离线处理 + 并查集
    [转载]HDU 3478 判断奇环
    POJ 1637 混合图的欧拉回路判定
    [转载] 一些图论、网络流入门题总结、汇总
    UVA 820 --- POJ 1273 最大流
    [转载 ]POJ 1273 最大流模板
    POJ 3041 -- 二分图匹配
    2014西安现场赛F题 UVALA 7040
    UVA 12549
    割点、桥(一点点更新)
  • 原文地址:https://www.cnblogs.com/tsolarboy/p/2093316.html
Copyright © 2020-2023  润新知