社区
Delphi
帖子详情
MDI子窗体如何实现ShowModal??为什么MDI子窗体调用ShowModal失败!!!请进帮忙!!
喜欢编程朋友
2005-07-14 11:36:24
如何在MDI窗体下面实现子窗体的showmodal的效果,因为如果调用子窗体的showmodal就会显示出错,这是什么原因???请高手帮忙解决!!多谢了!!!!
...全文
237
6
打赏
收藏
MDI子窗体如何实现ShowModal??为什么MDI子窗体调用ShowModal失败!!!请进帮忙!!
如何在MDI窗体下面实现子窗体的showmodal的效果,因为如果调用子窗体的showmodal就会显示出错,这是什么原因???请高手帮忙解决!!多谢了!!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
天行归来
2006-06-08
打赏
举报
回复
无意间也碰到此问题,此问题是可以解决的,虽此帖已结账,还是想贴出来,希望能给让后来者提供参考。
说明:FormStyle 为 MDIChild 对象窗口本身的确是不可ShowModal,所以我们需要在窗体创建之后作一些处理,步骤如下:
1、设计时,设置窗体的 FormStyle=fsNormal,同时设置 Visible=FALSE。
2、重载你的窗口的Create构造函数,并作一下处理。
constructor Create(AOwner: TComponent; OwnerStyle: TFormStyle); reintroduce; virtual;
constructor TXXForm.Create(AOwner: TComponent; OwnerStyle: TFormStyle);
begin
inherited Create(self);
FormStyle := OwnerStyle;
Visible := OwnerStyle=fsMDIChild;
end;
xxForm.Create(self,fsNormal)
xxForm.ShowModal;
xxForm.Free;
if xxForm=nil then xxForm.Create(self,fsMDIChild);
xxForm.Show;
conis
2005-09-16
打赏
举报
回复
解决方案
1.将子窗口(SubForm)FormStyle设置为fsNormal,并将Visable设置为False
2.在Mdi窗口的事件中写如下代码:
var
SubForm: TSubForm;
begin
SubForm := TSubForm.Create(nil);
SubForm.ShowModal;
end;
问题可以得到解决
如果子窗口本身为MDIChild,创建后将FormStyle设置为fsNormal,应该可以解决问题,但我没有试过,只是理论上可行
xx_adam
2005-07-14
打赏
举报
回复
MDI本来就是要求同时能显示多窗口,而用了showmodal只能显示一个窗口,那不是矛盾吗?
seekmydoom
2005-07-14
打赏
举报
回复
因为如果调用普通子窗体的showmodal不会错的,showmodal的窗体不能是字窗体类型
wlbfeihu
2005-07-14
打赏
举报
回复
有事能行的话就不是MDI了
就是SDI了
wzg1031
2005-07-14
打赏
举报
回复
MDI窗体中不能showmodal
窗体
设计
窗体
设计
窗体
设计
窗体
设计
本章主要探讨了
窗体
设计的各种方面,包括
窗体
的分类、显示方式、
MDI
(Multiple Document Interface)程序设计、
窗体
继承、提示窗口设计以及
窗体
布局。 首先,
窗体
的分类主要由其`FormStyle`属性决定,常见的有四种...
计算机考试系统(VB)
此外,可以使用
MDI
(Multiple Document Interface)技术创建一个主
窗体
,作为所有
子
窗体
的容器,
实现
多任务并行处理。 7. **VB编程基础**:VB语法简洁,易于学习,其事件驱动编程模式使得用户界面和业务逻辑的分离...
test_delphi.rar_delphi 界面_界面 delphi_界面设计
调用
`Show
Mo
dal
`方法会阻塞父
窗体
的事件处理,直到对话框关闭。 4. 使用`TFrame`和`TCustomForm`:对于更复杂的界面设计,你可以使用可重用的TFrame组件,它们可以像控件一样被添加到任何
窗体
上。而`TCustomForm`则...
delphi
子
窗体
关闭时如何触发主
窗体
的事件
MDI
子
窗体
里申明一个事件,在主
窗体
里
实现
这个事件过程。然后在创建
MDI
子
窗体
的时候,赋值这个事件。
MDI
退出的时候,触发一下这个事件。 例如: T
MDI
Form=... private FOn
MDI
Event:TNotifyEvent; public ...
调用
封装在DLL内的
子
窗体
摘 要 使用动态连接库(DLL)可以将资源、函数、过程等封装,同样也可以将系统需要
调用
的
子
窗体
封装起来,在需要时
调用
。不仅能够节省系统资源,同时也有利于整个软件的模块化处理。Delphi是Windows操作系统中流行的...
Delphi
5,928
社区成员
262,931
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章