有三个窗体Form1, Form2, Form3, 在Form1里打开Form2, 然后在Form2里打开Form3,但现有有个问题,我想在Form2里以非ShowModal方式打开Form3,用Show 打开Form3后,Form2可响应其它操作,同时Form3还必须在Form2之上,我将Form3 的FormStyle属性设为fsStayOnTop后,但没效果,Form3依然可以被Form2遮挡,但如果不开Form1就正常,不如该如何解决。
解决方案 »
- indy10传输2个结构体
- 在做打开文件的时候,如果判断出文件不存在,如何做使点确定后,打开文件对话框不关闭
- 这是什么错误啊?急救!!!!
- 如何使DBgrid中选中的行!以其它颜色显示?
- Report builder和Report builder server有什么区别,我该下哪一个??
- 怎样得到cpu和硬盘序列号?
- help me :DBGRID(急急急急急急急急急急急急急急急急急急急急急急)
- 非常感激WnEunfn,请来领昨天晚上的800分!
- 急急急!!请问各位大虾在delphi中如何执行一(*.exe)文件???
- SQL EXPLORER 中的sql enter 怎么恢复?!!急死我了:(
- 在DELPHI中的ADOQUERY,FILTER属性之疑问
- 想把CLIENTSOCKET编译成一个DLL,可以吗
Form2.Parent := Form1;
---------------------------
我试了,OnTop是解决了,但Form3被嵌入Form2里了,Form3无法移出Form2的窗口
你就在showmodal form2之前,做一下form1.hide;就可以了。当form2关闭时,再显示一下form1就行了。
--------------------------------------------------------
form1是主界面,隐藏起来不好看,还有没有其它方法
unit Unit3;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm3 = class(TForm)
private
{ Private declarations }
public
procedure Createparams(Var Params:TCreateParams);override;
end;var
Form3: TForm3;implementation{$R *.dfm}procedure TForm3.Createparams(var Params: TCreateParams);
begin Inherited CreateParams(Params); With Params do begin EXStyle:=ExStyle or WS_EX_TOPMOST OR WS_EX_ACCEPTFILES or WS_DLGFRAME;
WndParent:=GetDesktopWindow; //关键一行,用SetParent都不行!! end;end;
end.