【Delphi编程】Delphi开发文件枚举小工具

unit FileDlg;

interface

uses
  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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值