jsFileListView
This is a explorer-like, fully configurable file list component.

TjsCustomFileListView = class(TCustomListView)
private
FImageList : TImageList;
FDirectory : String;
FFileName : String;
FFileSortType : TFileSortType;
FOnDirChange : TNotifyEvent;
FFileDateFormat : TDateFormat;
FFileAttributes : TFileAttributes;
FFileMask : String;
FVisibleMenus : TVisibleMenus;
FVisibleColumns : TVisibleColumns;
jsRegFileTypes : TjsRegFileTypes;
FslCopyFileNames : TStringList;
FbDeleteFileNamesAfterPaste : Boolean;
function GetFormattedFileName(sFileName : String) : String;
procedure DoFileSortCompare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
function GetVisibleColumns : TVisibleColumns;
procedure SetVisibleColumns(visibleColumns : TVisibleColumns);
function GetVisibleMenus : TVisibleMenus;
procedure SetVisibleMenus(visibleMenus : TVisibleMenus);
function GetFileSortType : TFileSortType;
procedure SetFileSortType(fileSortType : TFileSortType);
function GetFileName : String;
function GetFileAttributes : TFileAttributes;
procedure SetFileAttributes(fileAttributes : TFileAttributes);
function GetFileMask : String;
function GetDirectory : String;
procedure SetDirectory(sDirName : String);
procedure AddFileToListView(sFileName, sFileSize, sFileDate, sFileType
: String);
protected
procedure InitPopupMenus(Sender : TObject); virtual;
procedure SetFileMask(sFileMask : String); virtual;
procedure Edit(const Item: TLVItem); override;
procedure ColClick(Column: TListColumn); override;
procedure DragDrop(Source: TObject; X, Y: Integer); override;
procedure DragOver(Source: TObject; X, Y: Integer; State: TDragState;
var Accept: Boolean); override;
procedure ReloadFileList(Sender : TObject); virtual;
procedure StoreCopyFileNames(Sender : TObject); virtual;
procedure StoreCutFileNames(Sender : TObject); virtual;
procedure PasteFiles(Sender : TObject); virtual;
procedure GetFileMaskFromDlg(Sender : TObject); virtual;
procedure SortByFilename(Sender : TObject); virtual;
procedure SortByFileExtension(Sender : TObject); virtual;
procedure SortByFileSize(Sender : TObject); virtual;
procedure SortByFileDate(Sender : TObject); virtual;
procedure SortByFileType(Sender : TObject); virtual;
procedure ShowFileDateOnly(Sender : TObject); virtual;
procedure ShowFileDateAndTime(Sender : TObject); virtual;
procedure CreatePopUpMenus; virtual;
procedure CreateColumns; virtual;
procedure SetParentComponent(Value: TComponent); override;
public
property Directory : String read GetDirectory write SetDirectory;
property SmallImages;
property Items;
procedure DeleteFiles(Sender : TObject); virtual;
procedure Refresh(Sender : TObject); virtual;
procedure CopyToClipboard(Sender : TObject); virtual;
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
published
property OnDirChange : TNotifyEvent read FOnDirChange write
FOnDirChange;
end;
TjsFileListView = class(TjsCustomFileListView)
published
property VisibleColumns : TVisibleColumns read GetVisibleColumns write
SetVisibleColumns;
property VisibleMenus : TVisibleMenus read GetVisibleMenus write
SetVisibleMenus;
property FileMask : String read GetFileMask write SetFileMask;
property FileAttributes : TFileAttributes read GetFileAttributes write
SetFileAttributes;
property FileSortType : TFileSortType read GetFileSortType write
SetFileSortType;
property FileDateFormat : TDateFormat read FFileDateFormat write
FFileDateFormat;
property Directory : String read GetDirectory write SetDirectory;
property FileName : String read GetFileName;
property Align;
property BorderStyle;
property Color;
property OnClick;
property OnDblClick;
property Columns;
property Ctl3D;
property DragMode;
property Enabled;
property Font;
property GridLines;
property HideSelection;
property HotTrack;
property MultiSelect;
property RowSelect;
property OnChange;
property OnChanging;
property OnColumnClick;
property OnDeletion;
property OnEnter;
property OnExit;
property OnInsert;
property OnDragDrop;
property OnDragOver;
property DragCursor;
property OnStartDrag;
property OnEndDrag;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property ParentColor default False;
property ParentFont;
property ParentShowHint;
property ShowHint;
property ShowColumnHeaders;
property TabOrder;
property TabStop default True;
property Visible;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property ViewStyle;
end;