一个界面方面的小问题,急! 我做的一个应用系统中,有一个窗口,它始终是最大化的,用它来作为背景,在这个窗口上有一系列操作的小窗口,怎么样让小窗口保持在背景窗口的上面,从一个小窗口转换到另一个小窗口? 我开始用的boderstyle 为bsdialog,用showmodal方法一个倒是可以,但再跳回来就不行,不知怎么回事? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用show不用showmodal倒是可以互相切换。不知道可不可以达到你的目的。 用mdi窗口可轻松实现,无须代码。具体实现几乎每本Delphi入门书上都讲过了。 用mdi窗口的时候隐藏一个子窗口怎么办? 做MDI,设置主窗口formstyle为fsmdiform 设置子窗口formstyle为fschildform 关闭时候:action:=cafree;最小化时候:close; 将小窗口的parent赋为背景窗口即可操作。或者将小窗口设为stayontop,不用showmodal。 '将小窗口的parent赋为背景窗口即可操作。或者将小窗口设为stayontop,不用showmodal'这个方法我认为是最为简洁实用。 //让所有子窗体从这个窗体继承 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); //显示 用MDI吧,最简便。只不过要关闭子窗体时,别忘了在子窗体的formclose事件里写上action:=caFree;才会真正关闭子窗体,否则点击关闭(X)只会最小化 变量定义并赋值 有什么简单的方便可以将一个clientDataSet中fields拷贝到另一个clientDataSet中 一个关于TDBGridEh的简单问题 如何得到treeview最上一级的节点 关于数据库连接问题 有没有这个函数? (讨论)各位在用ado数据连接时,整个系统用几个数据源(ADOConnection), Delphi启动是不是最慢的?数据库不如pb,系统支持不如vc 怎样改变stringgrid边框的颜色和某一栏的背景色??(在线) 好文:利用WM_COPYDATA消息实现程序间的数据传递 新年送分,祝大家新年快乐! 我想学DELPHI 请介绍几本好书。
设置子窗口formstyle为fschildform
最小化时候:close;
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); //显示
只不过要关闭子窗体时,别忘了在子窗体的formclose事件里写上
action:=caFree;
才会真正关闭子窗体,否则点击关闭(X)只会最小化