Delphi开发文件枚举小工具

来源:互联网 发布:美国聊天软件 编辑:程序博客网 时间:2024/05/16 10:19
unit FileDlg;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, ComCtrls, Grids, FileCtrl;type    TFileDlgForm = class(TForm)    DirectoryListBox: TDirectoryListBox;    DriveComboBox: TDriveComboBox;    BtnDisplay: TButton;    ListBox: TListBox;    FilterTypeBox: TComboBox;    procedure DriveComboBoxChange(Sender: TObject);    procedure BtnDisplayClick(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  FileDlgForm: TFileDlgForm;  StrPath: String;implementation{$R *.dfm}//驱动盘改变事件procedure TFileDlgForm.DriveComboBoxChange(Sender: TObject);begin  DirectoryListBox.Drive:= DriveComboBox.Drive;end;//枚举事件procedure TFileDlgForm.BtnDisplayClick(Sender: TObject);var  SearchRec: TSearchRec;  found: integer;  i, MaxWidth: integer;  StrFilterType: String;begin  ListBox.Clear;  StrPath:= DirectoryListBox.Directory;  StrFilterType:= FilterTypeBox.Text;  if(StrFilterType<>'') then  StrFilterType:= '\*.' + StrFilterType  else  StrFilterType:= '\*.*';  found:= FindFirst(StrPath + StrFilterType, faAnyFile, SearchRec);  while found=0 do  begin    if(SearchRec.Name<>'.') and (SearchRec.Name<>'..') then        ListBox.Items.Add(SearchRec.Name);        found:= FindNext(SearchRec);  end;  FindClose(SearchRec);  //横向滚动条的添加  MaxWidth:= 0;for i:= 0 to ListBox.Items.Count - 1 do  if MaxWidth < ListBox.Canvas.TextWidth(ListBox.Items.Strings[i]) then      MaxWidth := ListBox.Canvas.TextWidth(ListBox.Items.Strings[i]);  SendMessage(ListBox.Handle, LB_SETHORIZONTALEXTENT, MaxWidth + 50, 0);end;end.

1 0
原创粉丝点击