Q&A

  • [질문] OpenDialog.Execute를 하면 파일창이 열렸다가 바로 닫혀버립니다.
간단한 툴을 하나 만들고 있는 중입니다.

그런데 파일을 읽어서 처리를 하려고, 아래와 같은 코드를 실행하면
<!--CodeS-->
  if OpenDialog.Execute then begin
    iniFileName := OpenDialog.FileName;
    ....
  end;
<!--CodeE-->
파일 선택창이 떴다가 바로 종료되어 버립니다.

아래와 같은 코드로 확인해 보니 False메시지가 보이는게 바로 취소처리가 되어 버리는것 같습니다.
<!--CodeS-->
  if OpenDialog.Execute then begin
    ShowMessage('True');
  end else begin
    ShowMessage('False');
  end;
<!--CodeE-->

동일 소스를 델파이는 7버전과 2007버전에서 모두 테스트 해보았습니다만 같은 증상입니다.
델파이 2007의 File->New->SDI Application에 있는 OpenDialog는 정상적으로 파일 선택창을 보여줍니다.
제가 어떤 잘못을 한것인지요???
3  COMMENTS
  • Profile
    장성호 2008.11.04 21:47

    OpenDialog 에 FileName에 다음과 같이 존재하지 않는 엉뚱한 놈으로 설정되어있으면
    Dialog까 뜨지 않고 바로 닫혀 버립니다.

    <!--CodeS-->

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    OpenDialog1.FileName:='c:\\kim\\back\\xxx.yyy';
    OpenDialog1.Execute;
    end;

    <!--CodeE-->

    OpenDialog의 FileName을 초기화 하고 띄워보세요

    그럼..
  • Profile
    송 시중 2008.11.04 22:22
    OpenDialog1.FileName := '';
    를 주고 실행해도 마찬가지이네요.
    테스트를 위해 폼 Create이외의 다른 코드는 실행되지 않은 상태인데도 마찬가지입니다.
    폼 생성시 실행되는 코드들은 아래 코드들이구요.

    RunDir := ExtractFilePath(Application.ExeName);
    iniFileName := RunDir + 'StampInfo.ini';

    PostData := TStringList.Create;
    PostData.Clear;
    JobStatus := CONST_JOB_GO_PLUS;
    UserIdx := 0;
    IsFirst := True;
    AutoFlag := False;

    iniWorkList := TStringList.Create;

    타이머 2개가 올라가 있지만 Disable상태이고....
    대체 왜 이런지 모르겠습니다. ㅠ.ㅠ
  • Profile
    산소프트 2008.11.06 22:03
    컴퓨터 껐다가 켜보시죠^^;;