만약 보여주려는 파일 포맷이 이미지이고 델파이에서 직접 지원하지 않는 포맷이라면, 해당 이미지를 델파이의 TImage 등 TGraphic을 이용하는 컴포넌트에 보여주기 위해서는 TPicture.RegisterFileFormat() 메소드를 호출해서 파일 포맷을 등록해줘야 합니다. 이건 TGifImage나 GrahpicEx 등 서드파티 그래픽 포맷 라이브러리에 참고할 만한 코드가 있습니다.
그리고 이미지이든 아니든 오픈다이얼로그에서 선택된 파일을 다이얼로그에 추가된 컴포넌트에 보여주기 위해서는 두가지 방법이 있습니다. 하나는 TOpenPictureDialog같은 새 컴포넌트를 만드는 것이고, 또 한가지는 컴포넌트를 만들지 않고 TOpenDialog에 그냥 올리는 방법이 있습니다.
먼저 새 컴포넌트를 만들려면 당연히 TOpenPictureDialog 클래스가 있는 ExtDlgs 유닛을 참고하시면 됩니다. 여기서 중요한 부분은 오버라이드된 DoShow와 DoSelectionChange 두개의 메소드입니다. DoShow는 다이얼로그가 초기화될 때 호출되고, DoSelectionChange는 파일이 선택될 때 호출됩니다.
그냥 TOpenDialog에 컴포넌트를 올리는 방법은, 약간의 트릭인데, 아주 오래전에 팁 게시판에 올린 적이 있습니다.
http://delphi.borlandforum.com/impboard/impboard.dll?action=read&db=del_tip&no=164
그럼...
이리스 님이 쓰신 글 :
: OpenPictureDialog unit를 이용해서 파일선택 시 이미지를 볼 수 있는 OpenDialog를 만들려고 합니다.
:
: 꽁수라도 좋습니다. 방법만이라도 ㅠㅠ
:
: 지금 하려고 하는게... 특정 포맷에 대한 뷰어를 만들었습니다.
:
: 그런데 OpenDialog에서 파일을 선택하면 그 포맷에 대한 그림이 뜨게 해야 하는데 방법을 잘 모르겠네요
:
: 방법을 아시는 분의 가르침을 받고자 합니다.
:
: 수고하십시오~
|