zoukankan      html  css  js  c++  java
  • Delphi中实现MDI子窗体(转)

    Delphi中实现MDI子窗体
    用MDI实现浏览子窗口,具有窗口管理功能,同屏观看多个网页的内容
      ① 多文档窗体(MDI)
    MDI窗体是一种具有主子结构的窗体体系,微软的Word便是其中的一个典型例子。MDI体系中至少需要两种窗体,只能将其中之一设置为主窗体,其余窗体全部则全部为子窗体,主窗体负责子窗体的管理、切换等工作。自然,子窗体上承载的内容可各不相同。Tidy浏览器最终实现了三种不同的窗体:主窗体、浏览子窗体、源代码子窗体。
      ② 设置窗体类型
      我们通过窗体的FormStyle属性设置窗体类型,它是一个枚举类型,可取的值包括:fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop。分别对应:普通窗体, MDI子窗体,MDI主窗体, 普通顶部窗体。
      值得注意的是,窗体的FormStyle属性应在设计期确定,运行期间更改是不可取的。
      ③ 子窗体的创建
      一般而言,主窗体在应用程序启动时自动创建,子窗体通常在响应用户的有关动作之后才创建。并且,同一类子窗体实例可以多次被创建。为了避免程序启动时即创建子窗体,可通过C++Builder的集成环境IDE上的菜单ProjectOptions上的Form标签页,将所有子窗体从Auto-create forms窗口中,移至Available forms窗口。
      ④ 子窗体的关闭
      MDI窗体技术中另一个值得注意的问题是,用户点击MDI子窗体的关闭按钮企图关闭子窗体,系统默认的动作却是将其最小化。为了真正的实现关闭子窗体并释放所占用的内存,可在OnClose事件中将引用参数Action设置为caFree。Action的其他可取值为:caNone,caHide,caMinimize,分别对应无动作、隐藏、最小化。
      ⑤ 主窗体的重要属性的使用
      ActiveMDIChild属性,指向当前活动的子窗体。此乃TForm *类型的指针,必要时可强制转换为任意类型的子窗体实例。
      MDIChildCount属性,用于判断已经创建的子窗体的总数。
      MDIChildren属性,是一个TForm *类型的指针数组,指向目前存在的所有的子窗体。结合MDIChildCount属性,可以实现子窗体的遍历。
      ⑥ 子窗体之间的切换
      直接引用主窗体的方法Previous()、Next(),可以实现子窗体的前、后切换。
      ⑦ 子窗体的布局
      直接引用主窗体的方法Tile()、Cascade(),可以实现子窗体的平铺、层叠布局。

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    delphi中判断子窗体是否打开 (2008-10-07 15:21:52)
    标签:it 分类:DELPHI程序设计
    今天在一个程序中,需要判断子窗体是否打开,写了这段代码共享出来

    在一个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;

    允许单击关闭按钮时关闭子窗体:
    procedure Tf_Pass.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    Action := caFree;
    f_Pass := nil;
    end;

  • 相关阅读:
    How to alter department in PMS system
    Can't create new folder in windows7
    calculate fraction by oracle
    Long Wei information technology development Limited by Share Ltd interview summary.
    ORACLE BACKUP AND RECOVERY
    DESCRIBE:When you mouse click right-side is open an application and click left-side is attribution.
    ORACLE_TO_CHAR Function
    电脑BOIS设置
    JSP点击表头排序
    jsp+js实现可排序表格
  • 原文地址:https://www.cnblogs.com/blogpro/p/11446306.html
Copyright © 2011-2022 走看看