zoukankan      html  css  js  c++  java
  • 应用软件里基本信息设置的处理方法

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

    问题:

      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;
    
  • 相关阅读:
    Git常用
    自学过程
    SpringJunitTest
    通过Maven更换环境配置文件
    MongDB的DateZone
    工具使用问题
    项目中遇到的关于Java的问题
    iTerm2使用Profiles自动登录
    脚本:将git项目下载到本地并启动
    一些新的认识
  • 原文地址:https://www.cnblogs.com/tsolarboy/p/2093316.html
Copyright © 2011-2022 走看看