• MDI窗体


    在一个MDI窗体中限制打开多个子窗体,采用遍历的方式判断子窗体是否已经存在

    procedure Tf_Main.btnUpdateClick(Sender: TObject);
    var
    i:Integer;
    begin
    for i :=0 to f_main.MDIChildCount -1 do //MDIChildCount:总的子窗体个数
    if (f_main.MDIChildren[i] is Tf_Pass) then //判断子窗体是否存在
    begin
    self.MDIChildren[i].BringToFront; //把窗体放在最前面
    MDIChildren[i].SetFocus; //窗体获得焦点
    Exit; //退出函数体
    end;
    //创建新窗体
    Application.CreateForm(Tf_Pass,f_Pass);
    f_Pass.Show;
    end;
    View Code

    DMI子窗体如何设置让他不显示

    把它关闭就行了,关闭的同时把它销毁
    
    举个例子吧
    
    一个工程里有两个窗体
    Form1是父窗体 里面有个Button1 
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if Not Assigned(Form2) then
        Form2 := TForm2.Create(Nil);
      Form2.Show;
    end;
    
    form2是子窗体
    procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action := Cafree;
      Form2 := Nil;
    end;
    
    这样就能关闭了
    
    同时要说明,程序启动的时候如果不要Form2自己打开,就把工程文件里的Form2去掉(看注释)
    program Project1;
    
    uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2};
    
    {$R *.res}
    
    begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.CreateForm(TForm2, Form2);//去掉这一行
      Application.Run;
    end.
    View Code
  • 相关阅读:
    【.Net】鼠标点击控制鼠标活动范围 ClipCursor
    【设计模式】工厂模式 Factory Pattern
    sublime text3 关闭更新提醒
    Mac下Sublime Text3激活码
    测试开发(1) -- 整数反转
    测试开发工程师面试资料(未完)
    Mojave使用pyenv安装python-zlib错误
    清理 Xcode 10
    mitmproxy
    卸载CocoaPods
  • 原文地址:https://www.cnblogs.com/blogpro/p/11453739.html
Copyright © 2020-2023  润新知