procedure Tmainfrm.mimaactExecute(Sender: TObject);
begin
  try
  mimafrm:=tmimafrm.create(nil);//其中nil和self有什么区别啊?  mimafrm.showmodal;
  finally
  freeandnil(mimafrm);  //这里freeandnil是什么意思?
  end;
end;winexec('clients.exe',0);//这句什么意思,为什么一定是0?

解决方案 »

  1.   

    运行clients.exe,第二个参数是指被运行App界面的显示方式,0表示不显示界面
      

  2.   

    mimafrm:=tmimafrm.create(nil);//其中nil和self有什么区别啊? //nil 是指为空对象,self是当然的这个对象  mimafrm.showmodal;
      finally
      freeandnil(mimafrm);  //这里freeandnil是什么意思?  //这个函数用于释放这个对象
      end;
    end;winexec('clients.exe',0);//这句什么意思,为什么一定是0?  //0是显示的方法,可以为其它,SW_SHOW,你可以填这个,再按CTRL+ 单击可以看到其它的值。。
      

  3.   

    那为什么不直接free(mimafrm)而加andnil,谢谢了
      

  4.   

    tform.create(nil);是指创建一个窗体,他没有所有者,所以只需free就行了,
    而create(self)时会指定一个所有者,free的同时应该将将指向对象的指针设为nil,freeandnil
      

  5.   

    还是不懂啊
    我们一般creat(self)释放时用free就可以了,那为什么要freeandnil
    还有winexec('clients.exe',0);到底什么意思,谢谢了
      

  6.   

    SW_HIDE = 0;
    winexec('clients.exe',0);//就是以隐藏的方式运行clients.exe,后面那个0是参数啊
    至于为什么是0,或者还可以取哪些值,前面有人教你了,比如你输入一个SW_HIDE,然后在上面按Ctrl+鼠标左键就转向SW_HIDE的定义处了,可以看到其他的值。
      

  7.   

    至于freeandnil,前面Tensionli解释了,是为了将指针指向空
      

  8.   

    谁能告诉我,freeandnil后整个程序会做什么事,指向空和不指向空对整个程序会有什么影响,
    我查了好多书也找不到
     mimafrm:=tmimafrm.create(nil);也一样的问题,真的很急,谢谢了
      

  9.   

    winexec('clients.exe',0);//我的程序有关的文件里面没有以exe为后缀的clients
    那这句话有什么作用呢