各位朋友,Form在create的时候是不是触发了一个事件或者消息?
如果在Form的create事件中将该Form添加到一个全局变量中,可以知道最后打开的Form,但是Form太多了,有没有更好的办法知道最后打开的Form?

解决方案 »

  1.   

    Screen.Forms[Screen.FormCount - 1]
      

  2.   

    谢谢你,s11ss,这个Screen.Forms[Screen.FormCount - 1]我用过,里面不是按照顺序记录的,也就是Screen.Forms[Screen.FormCount - 1]通常不是最后打开的Form.
      

  3.   

    不会吧?
    constructor TCustomForm.CreateNew(AOwner: TComponent; Dummy: Integer);
    begin
      ...
      Screen.AddForm(Self);
      ...
    end;procedure TScreen.AddForm(AForm: TCustomForm);
    begin
      FCustomForms.Add(AForm);
      if AForm is TForm then
      begin
        FForms.Add(AForm);//FForms: TList;
        Application.UpdateVisible;
      end;
    end;
      

  4.   

    这个顺序不大对劲,screen.Forms[0].ClassName我这里测试大部分情况是最后打开的一个Form,而不是screen.Forms[Screen.FormCount - 1].ClassName