wpe2E.gif (987 bytes) jsFileListView

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

wpe4D.gif (15066 bytes)

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;