主窗体中
frmUpdateLog.ShowModal;
在子窗体的加载事件中断如果文件不存在,怎么关闭frmUpdateLog,我用了CLOSE,FREE好像都没用
procedure TfrmUpdateLog.FormCreate(Sender: TObject);
var
  Filename: string;
begin
  Filename := ExtractFilePath(ParamStr(0)) + 'UpdateLog.log';
  try
    FStream := TFileStream.Create(Filename, fmOpenRead);
    try
      moUpdateLog.Lines.LoadFromStream(FStream);
    finally
      FStream.Free;
    end;
  except
    ShowMessage('未找到日志文件');
    close;
  end;
end;

解决方案 »

  1.   

    我是要把frmUpdateLog.ShowModal; 
    这个子窗体关闭,不是整个程序!
      

  2.   

    用Close不行吗?
    也可以把这个窗体上的某个按扭的模态值设置为true也行
      

  3.   

    用Close不行吗? 
    也可以把这个窗体上的某个按扭的模态值设置为true也行
    ------------------------
    close没反映,
    模态值?不太明白
      

  4.   

    你是动态创建的子模态窗体?在窗体的Close事件中Action:=cafree
      

  5.   

    我的意思是点击主窗体的一个按钮显示frmUpdateLog窗体
    并在frmUpdateLog的FormCreate事件在判断如果指定的文件不存在的话,
    直接关闭frmUpdateLog窗体。
    但我怎么都关不了。
      

  6.   


    procedure TfrmUpdateLog.FormCreate(Sender: TObject); 
    var 
      Filename: string; 
    begin 
      Filename := ExtractFilePath(ParamStr(0)) + 'UpdateLog.log'; 
      try 
        FStream := TFileStream.Create(Filename, fmOpenRead); 
        try 
          moUpdateLog.Lines.LoadFromStream(FStream); 
        finally 
          FStream.Free; 
        end; 
      except 
        ShowMessage('未找到日志文件'); 
        PostMessage(Handle, WM_CLOSE, 0, 0);
      end; 
    end; 
      

  7.   

    难道判断文件 函数不能放到 formshow 事件中进行 ?procedure TfrmUpdateLog.FormShow(Sender: TObject);
    begin
      PostMessage(Self.Handle, WM_CLOSE, 0, 0);  
    end;