如何在MDI窗体下面实现子窗体的showmodal的效果,因为如果调用子窗体的showmodal就会显示出错,这是什么原因???请高手帮忙解决!!多谢了!!!!
解决方案 »
- 软件传参数给网页
- treenode问题
- 请问一个3层结构的程序客户端连接不上中间层的问题???急 急 急
- 由于D区的一猛、二猛、三猛诞生了,散分。
- 看了RAVE的HELP老半天 看懂了还是不会用 兄弟们哪里有例子(最好多点)来几个参考一下啊 谢谢了
- 关于两日期型变量相减的问题?
- FASTREPORT做Master-detail-subdetail 报表的问题 !!
- 如何获得未知API函数的调用形式及参数?
- 诸位大哥,我MM考我一个谜语,限我今天答复,请大家帮帮我。谜面是:猴山下的厕所(四字成语)
- 用delphi在windows2000下可以锁定键盘吗?
- delphi调用SQL存储过程adpstoreprocess1如何在DBGrid里显示存储过程返回的数据集?
- 请教后缀为.frf的文件为何文件?
就是SDI了
1.将子窗口(SubForm)FormStyle设置为fsNormal,并将Visable设置为False
2.在Mdi窗口的事件中写如下代码:
var
SubForm: TSubForm;
begin
SubForm := TSubForm.Create(nil);
SubForm.ShowModal;
end;问题可以得到解决
如果子窗口本身为MDIChild,创建后将FormStyle设置为fsNormal,应该可以解决问题,但我没有试过,只是理论上可行
说明: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;