Q&A

  • opendialog질문이요~~~
안녕하세요~~^^
과제를 하려다가 궁금한것이 생겨서여~~~도와주세여~~~!!
버튼을 클릭하면 이미지가 바뀌는 프로그램의 일부인데요~~~

procedure TForm1.New1Click(Sender: TObject);
begin
if OpenDialog1.execute then
  begin
       if OpenDialog1.Files.Text <>'' then   =>이부분이 이해가 안되요~~
           image1.Picture.LoadFromFile(OpenDialog1.Filename);
  end;
end;

오픈다이어그램을 실행시켜서 파일을 연다는것은 알겠는데 그중간에
if OpenDialog1.Files.Text <>'' then  이건 무슨 조건을 걸은 건가요???

고수님들 알려주세요~~~

좋은 주말 되시구요~~~
3  COMMENTS
  • Profile
    이승민 2004.10.04 19:02
    음 파일 선택은 확실이 맞는데 이건 OpenDialog.Files 는 여러게 다중선택 했을 경우 때 사용하면 TStrings 로 값이 넘어오거든요.
    만일 아래와 같이 코딩한다면 다중선택했을 경우에 문제가 되겠죠.
    여러개의 파일 리스트가 같이 쓰여지게 되니까요.
    만일 하나만 사용하시려면

    if OpenDialog1.execute then
      begin
           if OpenDialog1.FileFileName   <>'' then  
               image1.Picture.LoadFromFile(OpenDialog1.Filename);
      end;
    end;

    으로 하시는 것이 좋을꺼 같네요.

    그게 아니고 다중선택을 사용하시겠다면
    type
      pPlayListItem = ^TPlayListItem;
      TPlayListItem = record
        Filename  :String;
        Path      :String;
      end;

    var
      i :Integer;
    begin
      if OpenDialog.Execute then begin
        with OpenDialog.Files do
          for i := Count - 1 downto 0 do begin
            New(PlayListItem);
            PlayListItem^.Filename  := ExtractFilename(Strings[i]);
            PlayListItem^.Path      := ExtractFilePath(Strings[i]);
            ListBox1.Items.AddObject(PlayListItem^.Filename, TObject(PlayListItem));
          end;
        Listbox1.ItemIndex := 0;
        PlayingIndex := 0;
        image1.Picture.LoadFromFile(OpenDialog.Files.Strings[0]);
      end;
    end;

    이렇게 사용하심이 어떠신지 ~~

    즐코하세요 ~~~

  • Profile
    석주현 2004.10.03 06:19

    위에 코드에서

    if OpenDialog1.Files.Text <>'' then

    부분은 파일이름이 안들어 왔을때 처리같습니다만
    제가 알기론 오픈 다이얼로그에서 파일을 선택한하면 그냥 if 문 에 end로 바로 가기 때문에

    if OpenDialog1.Files.Text <>'' then

    이문장은 필요가 없을꺼 같습니다.

    차라리 저라면 아래처럼 예외 처리를 하겠습니다.

    이미지 파일을 Image에 넣는 거라 다른 파일을 읽을 경우 익셉션이
    발생되므로 아래 처럼 하는게 더 나을 거 같네요.. ^^

    try
      image1.Picture.LoadFromFile(OpenDialog1.Filename);
    except
      ShowMessage('파일이 없거나 잘못되었습니다.');
    end;
  • Profile
    장덕곤 2004.10.03 03:04
    다이얼로그에서 파일을 선택했을경우...
    그뜻입니다...
    파일을 선택했을때만 image1에 그림파일을 불러오게 되어있네요