OpenDialog 를 이용해 파일을 선택하듯이 디렉토리를 선택하는 Dialog 가 있는 줄 알았는데 VCL에는 없다.
대신 해당 기능을 수행하는 함수가 있음.
SelectDirectory (두둥!)
아래는 BDS Help 에 있는 내용
[Delphi] function SelectDirectory(var Directory: string; Options: TSelectDirOpts; HelpCtx: Integer): Boolean; overload;
[Delphi] function SelectDirectory(const Caption: string; const Root: WideString; var Directory: string; Options: TSelectDirExtOpts; Parent: TWinControl): Boolean; overload;
보시다시피 overload 된 두가지가 있는데 하나는 열라 허접한 창이 뜬다.
첫번째 것이 열라 허접한 창이고 두번째것은 그냥 윈도우즈가 제공하는 디렉토리 선택창인듯.
여하튼 쓸려면 FileCtrl 을 uses 에 추가해야 하는데 specific to a platform 이라는 Warning 이 자꾸 떠서 약간 신경거슬림.
아래는 두번째것을 사용한 예제로 각 파라메터는
const Caption: String => 디렉토리 선택창의 캡션
const Root: WideString => 뭔가 가둬두는 모양이다. 'C:\' 같은 식으로 하면 C:\ 내에서만 선택이 가능하다.
var Directory: String => 선택된 경로를 담을 스트링의 포인터
나머지 파라메터들은 안써도 무방하다.
예제)
// 버튼을 클릭하고 경로선택 Dialog 에서 경로를 선택한 후
// edtSavePath 라는 에디트박스에 선택한 경로를 보여주는 예제임
procedure TForm1.Button1Click(Sender: TObject);
var s: String;
begin
// s 가 var 형으로 선택된 경로가 저장된다. 간단해서 좋음.
if SelectDirectory('경로 선택','',s) then edtSavePath.Text:=s;
end;
'Delphi' 카테고리의 다른 글
[Delphi] 바탕화면을 내 폼안으로 (0) | 2009.04.18 |
---|---|
[Delphi] Zip 압축관련 Component (ZipMaster) (0) | 2009.04.18 |
[Delphi] 동적으로 COM Server 등록하기 (DLL, OCX) (0) | 2009.04.18 |
[Delphi] Context Menu 등록하기 (COM 방식) (0) | 2009.04.18 |
[Delphi] DeleteFile 함수 사용시 읽기전용파일이 지워지지 않을 때 (0) | 2009.04.18 |