我的app有2个form需要同时显示
其中form2里面有关闭按钮,Onclick事件我写入了application.Terminate;
但是在form2我需要在finalization里面有下面的操作
finalization
begin
    windows.MessageBox(0,'@1','test',0);
    uninitGlobal; //外部函数,release 资源用    if (x=1) then
    { 
      windows.MessageBox(0,'@2','test',0);
      ShellExecute(0,
        'Explore',
        PChar(ExtractFilePath(application.ExeName )+'子目录1'),
        nil,
        PChar(ExtractFilePath(application.ExeName )+'子目录1'),
        SW_SHOWNORMAL);
      windows.MessageBox(0,'@3','test',0);
    }
    else
      windows.MessageBox(0,'@4','test',0);    windows.MessageBox(0,'@5','test',0);
end;但是发现
1, 如果x=1.那么 可以看到  @3, @5;子目录也正常打开
2。如果条件x<>1 ,那么 什么都看不到(子目录没有打开)
郁闷。
@1,@2为什么不显示呢?
请前辈们分析一下可能的问题。。

解决方案 »

  1.   

    你应该在initialization中也写些代码,并且在finalization中应该用到initialization中的变量什么的才会执行,并且这种MessageBox他是不用你点,也会退出程序的
      

  2.   

    "你应该在initialization中也写些代码,并且在finalization中应该用到initialization中的变量什么的才会执行,并且这种MessageBox他是不用你点,也会退出程序的"........这个不明白
    initialization中间
    我有initGlobal函数,动态定义了一些数组
    而对应的uninitGlobal 函数是释放他们的。
    什么是不用点的Messagebox???
    我用的可是windows.MessageBox函数啊。不是delphi控制的 
    应该说我是不理解initialization和finalization的本质是怎么进行的。
    。。所以。。哎