FFoldersForm.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:2k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit FFoldersForm;
  2. interface
  3. {$WARN UNIT_PLATFORM OFF}
  4. uses
  5.   SysUtils, Windows, Messages, Classes, Graphics, Controls,
  6.   Forms, Dialogs, StdCtrls, FileCtrl, ShlObj;
  7. type
  8.   TForm1 = class(TForm)
  9.     Edit1: TEdit;
  10.     Label1: TLabel;
  11.     TestButton: TButton;
  12.     CreateButton: TButton;
  13.     SelectButton: TButton;
  14.     btnBrowse: TButton;
  15.     procedure TestButtonClick(Sender: TObject);
  16.     procedure Edit1Change(Sender: TObject);
  17.     procedure CreateButtonClick(Sender: TObject);
  18.     procedure SelectButtonClick(Sender: TObject);
  19.     procedure btnBrowseClick(Sender: TObject);
  20.   private
  21.     { Private declarations }
  22.   public
  23.     { Public declarations }
  24.   end;
  25. var
  26.   Form1: TForm1;
  27. implementation
  28. {$R *.DFM}
  29. procedure TForm1.TestButtonClick(Sender: TObject);
  30. begin
  31.   if DirectoryExists (Edit1.Text) then
  32.     MessageDlg ('OK, the directory ' +
  33.       Edit1.Text + ' exists', mtInformation, [mbOk], 0)
  34.   else
  35.     MessageDlg ('Sorry, the directory ' + Edit1.Text +
  36.       ' doesn''t exist', mtError, [mbOk], 0);
  37. end;
  38. procedure TForm1.Edit1Change(Sender: TObject);
  39. begin
  40.   if Edit1.TExt <> '' then
  41.   begin
  42.     TestButton.Enabled := True;
  43.     CreateButton.Enabled := True;
  44.   end
  45.   else
  46.   begin
  47.     TestButton.Enabled := False;
  48.     CreateButton.Enabled := False;
  49.   end;
  50. end;
  51. procedure TForm1.CreateButtonClick(Sender: TObject);
  52. begin
  53.   if MessageDlg ('Are you sure you want to create the ' +
  54.       Edit1.Text + ' directory', mtConfirmation,
  55.       [mbYes, mbNo], 0) = mrYes then
  56.     ForceDirectories (Edit1.Text);
  57. end;
  58. procedure TForm1.SelectButtonClick(Sender: TObject);
  59. var
  60.   Text: string;
  61. begin
  62.   Text := Edit1.Text;
  63.   if SelectDirectory (Text, [sdAllowCreate,
  64.       sdPerformCreate, sdPrompt], 0) then
  65.     Edit1.Text := Text;
  66. end;
  67. procedure TForm1.btnBrowseClick(Sender: TObject);
  68. var
  69.   bi: TBrowseInfo;
  70.   pidl: pItemIdList;
  71.   strpath, displayname: string;
  72. begin
  73.   SetLength (displayname, 100);
  74.   bi.hwndOwner := Handle;
  75.   bi.pidlRoot := nil;
  76.   bi.pszDisplayName := pChar (displayname);
  77.   bi.lpszTitle := 'Select a folder';
  78.   bi.ulFlags := bif_StatusText;
  79.   bi.lpfn := nil;
  80.   bi.lParam := 0;
  81.   pidl := ShBrowseForFolder (bi);
  82.   SetLength (strPath, 100);
  83.   ShGetPathFromIdList (pidl, PChar(strPath));
  84.   Edit1.Text := strPath;
  85. end;
  86. end.