父窗口在最小化的时候如何显示程序中的另一窗口(100分)

L

lofa

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在有个程序,主窗体可以缩小到托盘中,但是在这时我想同时让程序中的另一个
窗体显示出来就不可以了,只有在主窗体回复大小的时候才能看到那个窗口,大家有
没有什么办法让主窗口最小化的时候,同时显示另外一个窗体?
 
主窗口最小化时,到底是要还是不要显示另一窗口?似乎没表达清楚。

这一类问题,要处理好窗口句柄的关系。
 
'另外一个窗口'
procedure CreateParams(var Params: TCreateParams); override;
private
{ Private declarations }
...

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WndParent := 0;
end;
 
在最小化事件中写
type
TForm1 = class(TForm)
。。。。
public
procedure MyMinimize(Sender:TObject);
。。。

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMinimize:=MyMinimize;
end;

procedure TForm1.MyMinimize(Sender: TObject);
begin
FORM2.ShowModal;
end;
 
当你最小化主窗体的时候,其他窗体也受到最小化消息 所以也就跟着最小化了
建一个工程 包含2个窗体
form1是主窗体,不写任何代码
form2代码如下
type
TForm2 = class(TForm)
。。。。
public
procedure MyMinimize(Sender:TObject);
。。。

procedure TForm2.FormCreate(Sender: TObject);
begin
Application.OnMinimize:=MyMinimize;
end;

procedure TForm2.MyMinimize(Sender: TObject);
begin
showmessage('!');
self.ShowModal;
end;
 
接受答案了.
 
顶部