一个界面方面的小问题,急!

sunboy2002 2003-01-27 03:53:35
我做的一个应用系统中,有一个窗口,它始终是最大化的,用它来作为背景,在这个窗口上有一系列操作的小窗口,怎么样让小窗口保持在背景窗口的上面,从一个小窗口转换到另一个小窗口?
我开始用的boderstyle 为bsdialog,用showmodal方法一个倒是可以,但再跳回来就不行,不知怎么回事?
...全文
26 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
多壮志 2003-01-28
  • 打赏
  • 举报
回复
'将小窗口的parent赋为背景窗口即可操作。或者将小窗口设为stayontop,不用showmodal'这个方法我认为是最为简洁实用。
dypher 2003-01-28
  • 打赏
  • 举报
回复
将小窗口的parent赋为背景窗口即可操作。或者将小窗口设为stayontop,不用showmodal。
enewren 2003-01-28
  • 打赏
  • 举报
回复
关闭时候:action:=cafree;
最小化时候:close;
enewren 2003-01-28
  • 打赏
  • 举报
回复
做MDI,设置主窗口formstyle为fsmdiform
设置子窗口formstyle为fschildform

广州接入 2003-01-28
  • 打赏
  • 举报
回复
关注!
NightCloud 2003-01-28
  • 打赏
  • 举报
回复
用MDI吧,最简便。
只不过要关闭子窗体时,别忘了在子窗体的formclose事件里写上
action:=caFree;
才会真正关闭子窗体,否则点击关闭(X)只会最小化
ysai 2003-01-28
  • 打赏
  • 举报
回复
//让所有子窗体从这个窗体继承
TChildForm = class(TForm)
procedure FormClose(Sender: TObject; var Action: TCloseAction);
protected
procedure CreateParams(var Params:TCreateParams); override;
end;

procedure TChildForm.CreateParams(var Params:TCreateParams);
//让拥有者成为父
begin
inherited CreateParams(Params);
if Owner is TForm then
Params.WndParent:=TForm(Owner).Handle;
end;

procedure TChildForm.FormClose(Sender: TObject; var Action: TCloseAction);
//关闭释放
begin
Action:=caFree;
end;

//在父窗体中建立窗体用
frmChild:=TChildForm.Create(self);
frmChild.Show;
//这样只要self是从TForm继承,ChildForm就会永远在其上面,非模式

用MDI窗体也是个解决办法,但不能HIDE,必须用API函数
ShowWindow(frmChild.Handle,SW_HIDE); //隐藏
ShowWindow(frmChild.Handle,SW_SHOW); //显示
sunboy2002 2003-01-27
  • 打赏
  • 举报
回复
用mdi窗口的时候隐藏一个子窗口怎么办?
samcrm 2003-01-27
  • 打赏
  • 举报
回复
用mdi窗口可轻松实现,无须代码。具体实现几乎每本Delphi入门书上都讲过了。
idilent 2003-01-27
  • 打赏
  • 举报
回复
使用show不用showmodal倒是可以互相切换。不知道可不可以达到你的目的。

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧