16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"フォルダーダイアログ"
この発言に対し以下のコメントが寄せられています
#01038 雪見酒 さん RE:フォルダーダイアログ
皆さん こんにちは らせん企画の佐々木です
日経バイトに載っていた SHBrowseForFolder を使用した
フォルダーダイアログコンポーネントです。
unit BrowseFolder;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TBrowseFolder = class(TComponent)
private
{ Private 宣言 }
FDir, FTitle: String;
protected
{ Protected 宣言 }
public
{ Public 宣言 }
Function Execute: Boolean;
Property DirName: String Read FDir;
published
{ Published 宣言 }
Property Title: String Read FTitle Write FTitle;
end;
procedure Register;
implementation
Uses
ShlObj;
procedure Register;
begin
RegisterComponents('Dialogs', [TBrowseFolder]);
end;
Function TBrowseFolder.Execute;
var
BI: TBrowseInfo;
IDList: PItemIDList;
Dir: Array [0..Max_Path] Of Char;
begin
FDir := '';
Result := False;
FillChar(BI, SizeOf(BI), 0);
BI.hwndOwner := TWinControl(Owner).Handle;
BI.lpfn := nil;
BI.lpszTitle := PChar(FTitle);
BI.pidlRoot := nil;
BI.ulFlags := BIF_RETURNONLYFSDIRS + BIF_STATUSTEXT;
IDList := SHBrowseForFolder(BI);
If IDList <> nil Then
Begin
SHGetPathFromIDList(IDList, Dir);
FDir := String(Dir);
Result := True;
End;
end;
end.
98/11/2(Mon) 07:54am BYQ05322 らせん企画の佐々木
Original document by らせん企画 氏 ID:(BYQ05322)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|