这个问题我好早以前就已发现并且已经解决,只是一直没有发表。
用Delphi编的程序最小化时没有动态效果,可以用以下方法实现。
一、New Application。
二、New Form,生成Form2。
三、New Unit,在implementation后面加上:
initialization
islibrary :=true;
四、Save All,为工程取好名字,Unit建议取名为“RunFirst.pas”。
五、打开工程文件,把“RunFirst in 'RunFirst.pas';”放到“Forms,”这一行前面去,如下:
program Project1;
uses
RunFirst in 'RunFirst.pas',
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2}; {$R *.RES} begin
Application.Initialize;
Application.ShowMainForm :=false;
islibrary :=true;
Application.CreateForm(TForm1, Form1);
Form2 :=TForm2.Create(Application) ;
Form2.Show ;
Form2.Update ;
Application.Run;
end.
六、在Form2的OnClose事件中写如下语句:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Terminate
end;
即可。
用Delphi编的程序最小化时没有动态效果,可以用以下方法实现。
一、New Application。
二、New Form,生成Form2。
三、New Unit,在implementation后面加上:
initialization
islibrary :=true;
四、Save All,为工程取好名字,Unit建议取名为“RunFirst.pas”。
五、打开工程文件,把“RunFirst in 'RunFirst.pas';”放到“Forms,”这一行前面去,如下:
program Project1;
uses
RunFirst in 'RunFirst.pas',
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2}; {$R *.RES} begin
Application.Initialize;
Application.ShowMainForm :=false;
islibrary :=true;
Application.CreateForm(TForm1, Form1);
Form2 :=TForm2.Create(Application) ;
Form2.Show ;
Form2.Update ;
Application.Run;
end.
六、在Form2的OnClose事件中写如下语句:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Terminate
end;
即可。
Win98SE+IE5
Delphi5+UP#1
用我的方法顺便也可以解决这个问题。
可用于Delphi3、4、5(Delphi2我没用过,所以也没试过)
请介绍一下原理,IsLibrary 变量都影响了什么,这样做有什么副作用?
在你的代码中,不浪费 Form1 不行吗?我试了一下,就是最小化按钮不起作用,加个消息处理代码直接解决不行吗?