procedure Tmainform.Image1Click(Sender: TObject);
var
mon:Tform;
begin
try
  mon:=Tyuedutongji.Create(self);
  mon.ShowModal;
finally
  mon.Free;//在这里Warning,为什么啊?
end;谢谢

解决方案 »

  1.   

    procedure Tmainform.Image1Click(Sender: TObject);
    var
    mon:Tform;
    begin
    try
      mon:=Tyuedutongji.Create(self);  ///1
      mon.ShowModal;
    finally
      ;//在这里Warning,为什么啊?
    end;如果1处创建失败, 
    mon.Free就会出错
      

  2.   

    procedure Tmainform.Image1Click(Sender: TObject);
    var
    mon:Tform;
    begin
      mon:=Tyuedutongji.Create(self);
    try
      mon.ShowModal;
    finally
      mon.Free;//在这里Warning,为什么啊?
    end;
      

  3.   

    procedure Tmainform.Image1Click(Sender: TObject);
    var
    mon:Tform;
    begin
      mon:=Tyuedutongji.Create(self);
    try
      mon.ShowModal;
    finally
      mon.Free;//只有创建成功了才能free
    end;
    楼上这个就对了。
      

  4.   

    去掉 try 和 finally 试试
      

  5.   

    procedure Tmainform.Image1Click(Sender: TObject);
    var
    mon:Tform;
    begin 
    try
      mon:=Tyuedutongji.Create(self);
      mon.ShowModal;
      mon.Free;//只有创建成功了才能free
    finally
      
    end;
      

  6.   

    procedure Tmainform.Image1Click(Sender: TObject);
    var
    mon:Tform;
    begin
    try
      mon:=Tyuedutongji.Create(self);
      mon.ShowModal;
    finally
      mon.Free;//在这里Warning,为什么啊?
    end;在try..finally..end
    句子中,无论如何会执行finally后面的语句,
    如果try后面的mon:=Tyuedutongji.Create(self);没有创建成功,
    如何做到mon.Free?所以Delphi就告诉你要小心!! meiqingsong(阿飛) 对:
    procedure Tmainform.Image1Click(Sender: TObject);
    var
      mon:Tform;
    begin
      mon:=Tyuedutongji.Create(self);
      try
        mon.ShowModal;
      finally
        mon.Free;//在这里Warning,为什么啊?
      end;
    end;