在show事件中加入的结果是先出警告再出窗体。

解决方案 »

  1.   

    1. onActive肯定不行,效果同onShow中一样
    2. onPaint,提示窗口会在本窗口出现后出现,但关不掉(因为,每关掉一次挡在本窗口前的提示窗口,就又会触发onPaint,提示窗口就又出现一次)
    3. 
    var
      Form2: TForm2;
      FormShowed: Boolean;  //设一个全局变量,判断提示窗口是否出现过implementation
    uses unit3;
    {$R *.dfm}procedure TForm2.FormCreate(Sender: TObject);
    begin
     FormShowed:=false; //窗口创建时,初始化变量
    end;procedure TForm2.FormPaint(Sender: TObject);
    begin
      if not FormShowed then  //如果没有显示过
      begin
       Form3.ShowModal; //显示提示窗口
       FormShowed:=true; //表示已经显示过了
      end;
    end;
      

  2.   

    在oncreate,onpaint,onshow,onactive均可.不过要注意用法和场合.
    onshow和oncreate,onpaint先显示信息再显示窗体.
    onactive事件先显示窗体再显示信息.