这个问题我好早以前就已发现并且已经解决,只是一直没有发表。
  用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;
  即可。

解决方案 »

  1.   

    环境:
    Win98SE+IE5
    Delphi5+UP#1
      

  2.   

    Delphi5+UP#1自然没问题,Win98,IE5都无所谓。其实Delphi5已经解决了最小化动态效果的问题,但是由于Delphi程序有个Application对象,而系统菜单和主窗口系统菜单是不同的。造成不能和其他Windows标准窗口正常平铺。
    用我的方法顺便也可以解决这个问题。
    可用于Delphi3、4、5(Delphi2我没用过,所以也没试过)
      

  3.   

    CathyEagle:
        请介绍一下原理,IsLibrary 变量都影响了什么,这样做有什么副作用?
        在你的代码中,不浪费 Form1 不行吗?我试了一下,就是最小化按钮不起作用,加个消息处理代码直接解决不行吗?