Delphi中实现MDI子窗体(转)

Delphi中实现MDI子窗体
用MDI实现浏览子窗口,具有窗口管理功能,同屏观看多个网页的内容
  ① 多文档窗体(MDI)
MDI窗体是一种具有主子结构的窗体体系,微软的Word便是其中的一个典型例子。MDI体系中至少需要两种窗体,只能将其中之一设置为主窗体,其余窗体全部则全部为子窗体,主窗体负责子窗体的管理、切换等工作。自然,子窗体上承载的内容可各不相同。Tidy浏览器最终实现了三种不同的窗体:主窗体、浏览子窗体、源代码子窗体。
  ② 设置窗体类型
  我们通过窗体的FormStyle属性设置窗体类型,它是一个枚举类型,可取的值包括:fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop。分别对应:普通窗体, MDI子窗体,MDI主窗体, 普通顶部窗体。
  值得注意的是,窗体的FormStyle属性应在设计期确定,运行期间更改是不可取的。
  ③ 子窗体的创建
  一般而言,主窗体在应用程序启动时自动创建,子窗体通常在响应用户的有关动作之后才创建。并且,同一类子窗体实例可以多次被创建。为了避免程序启动时即创建子窗体,可通过C++Builder的集成环境IDE上的菜单Project\Options上的Form标签页,将所有子窗体从Auto-create forms窗口中,移至Available forms窗口。
  ④ 子窗体的关闭
  MDI窗体技术中另一个值得注意的问题是,用户点击MDI子窗体的关闭按钮企图关闭子窗体,系统默认的动作却是将其最小化。为了真正的实现关闭子窗体并释放所占用的内存,可在OnClose事件中将引用参数Action

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi ,可以使用以下步骤将窗体的值传递给父窗体: 1. 在窗体定义一个公共的属性,用于保存要传递的值。 2. 在窗体创建一个公共的方法,用于将需要传递的值设置到属性。 3. 在父窗体创建一个公共的方法,用于接收窗体传递的值。 4. 在父窗体创建窗体的实例,并调用窗体的设置值方法。 5. 在窗体关闭时,调用父窗体的接收值方法,以便在父窗体更新相应的控件。 以下是示例代码: 在窗体定义公共属性和方法: ```delphi type TChildForm = class(TForm) private FValue: Integer; public procedure SetValue(AValue: Integer); end; implementation procedure TChildForm.SetValue(AValue: Integer); begin FValue := AValue; end; ``` 在父窗体定义公共方法: ```delphi type TMainForm = class(TForm) public procedure UpdateValue(AValue: Integer); end; implementation procedure TMainForm.UpdateValue(AValue: Integer); begin // 在这里更新父窗体需要显示窗体值的控件 end; ``` 在父窗体创建窗体实例并调用设置值方法: ```delphi var ChildForm: TChildForm; begin ChildForm := TChildForm.Create(Self); ChildForm.SetValue(123); ChildForm.Show; end; ``` 在窗体关闭时,调用父窗体的接收值方法: ```delphi procedure TChildForm.FormClose(Sender: TObject; var Action: TCloseAction); begin if Assigned(Owner) and (Owner is TMainForm) then TMainForm(Owner).UpdateValue(FValue); end; ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值