1.窗体还没有free,就Nil, 如果继续使用此窗体,会不会出错!2.怎么通过类返回对象名, 如下:
 
动态任意建立一个窗体:
myForm: TForm1;在Form1的单元里,能不能返回对象实例myForm;

解决方案 »

  1.   

    1、已经Nil,就没法用。
    2、可以使用继承的方法type
      TMyForm=class(TForm1)end;
    //定义:
    myForm:TmyForm;
      

  2.   

    楼主所谓的NIL,是相对窗体对象变量而言吧。窗体变量仅仅是一个指向窗体对象实体的指针,这个指针指向什么地方都无所谓,只要你不再使用这个指针,而窗体还是可以正常运行的,依旧可以接受消息处理。很多时候,创建一个窗体对象,根本就不保留变量,如;
    with tform1.Create(self) do
    try
      ShowModal;
      ....
    finally
      Free;
    end;
      

  3.   

    对于楼主的国文功底,实在汗然。
    第二题,是不是想知道有多少TForm1实例?class function Tform1.GetSelf: TForm;
    var
      i: Integer;
    begin
      Result := nil;
      for i := 0 to Screen.FormCount - 1 do
      if Screen.Forms[i].ClassName = self.ClassName then
      begin
        Result := Screen.Forms[i];
        Result.BringToFront;
        Exit;
      end;
    end;