Class TSystemListView (unit SystemTreeView) |
Inherits from
TCustomListView
constructor Create(AOwner: TComponent);
- ------------------------------------------------------------------------------} {------------------------------------------------------------------------------} {------------------------------------------------------------------------------} {------------------------------------------------------------------------------} {------------------------------------------------------------------------------
destructor Destroy;
Create
function DisplayContextMenu(Item: TListItem; Where: TPoint): boolean;
******************************************************************************
DisplayContextMenu:
function GetFullPath(const Item: TListItem): string;
function GetItemAttrs(const Item: TListItem): UINT;
procedure Reset(const ParentNode: TTreeNode);
ctUnknown;
procedure SetColumnWidths(NameWidth, SizeWidth, TypeWidth,
ModifiedWidth: integer);
function AddNode(const ShellFolder: IShellFolder;
FQ_IDList, IDList: PItemIDList; const ParentNode: TTreeNode): TListItem;
always protect this stuff to make sure it gets reset.
function AlphaSort: Boolean;
CustomSort
procedure CNNotify(var Message: TWMNotify);
FreeAllItemData} (*******************************************************************************
CNNotify: Trap notification messages sent to the window.
procedure CreateColumns(ColType: TColumnType);
This will be based on what type of stuff we are enumerating eventually
procedure CreateWnd;
function CustomSort(SortProc: TLVCompare; Data: Longint): Boolean;
Status is returned in the 'code' portion (low word) of the result.
function EnumerateFiles(const Folder: IShellFolder;
const ParentNode: TTreeNode): boolean;
function GetItemData(Item: TListItem): TFolderItemData;
CNNotify
procedure Loaded;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);
try
procedure SetColumnType(ColType: TColumnType);
procedure SetShowFolders(Val: boolean);
function AddItemData(ItemFolder: IShellFolder; aIDList,
aFQ_IDList: PItemIDList; Attrs: UINT): TFolderItemData;
AddNode
procedure FreeAllItemData;
FreeItemData
procedure FreeItemData(Item: TListItem);
AddItemDta
function GetValidHandle: HWND;
ResetTreeView
property Align :
Published protected properties
property AllocBy :
property BorderStyle :
property Color :
property ColumnClick :
property Columns :
property ColumnType : TColumnType
property Ctl3D :
property DragCursor :
property DragMode :
property Font :
property HideSelection :
property IconOptions :
property Items :
property MultiSelect :
property ParentShowHint :
property PopupMenu :
property ReadOnly :
property ShowColumnHeaders :
property ShowFolders : boolean
property ShowHiddenFiles : boolean
property ShowHint :
property SortType :
property TabOrder :
property TabStop :
property ViewStyle :
property Visible :
property ShowErrorsInMsgBox : boolean
event OnAddListItem : TSLVAddListItem
event OnChange :
event OnChanging :
event OnClick :
event OnColumnClick :
event OnCompare :
event OnCreateColumns : TSLVCreateColumns
this stuff can't be saved with the form.
event OnDblClick :
event OnDeletion :
event OnDragDrop :
event OnDragOver :
event OnEdited :
event OnEditing :
event OnEndDrag :
event OnEnter :
event OnExit :
event OnInsert :
event OnKeyDown :
event OnKeyPress :
event OnKeyUp :
event OnMouseDown :
event OnMouseMove :
event OnMouseUp :
event OnStartDrag :
FColumnType : TColumnType;
FLastNode : TTreeNode;
FOnAddListItem : TSLVAddListItem;
FOnCreateColumns : TSLVCreateColumns;
FShowErrorsInMsgBox : boolean;
FShowFolders : boolean;
FShowHiddenFiles : boolean;
This will eventually be a set of attributes (system, read-only, etc.
constructor Create(AOwner: TComponent);
------------------------------------------------------------------------------} {------------------------------------------------------------------------------} {------------------------------------------------------------------------------} {------------------------------------------------------------------------------} {------------------------------------------------------------------------------
destructor Destroy;
Create
function DisplayContextMenu(Item: TListItem; Where: TPoint): boolean;
******************************************************************************
DisplayContextMenu:
function GetFullPath(const Item: TListItem): string;
function GetItemAttrs(const Item: TListItem): UINT;
procedure Reset(const ParentNode: TTreeNode);
ctUnknown;
procedure SetColumnWidths(NameWidth, SizeWidth, TypeWidth,
ModifiedWidth: integer);
function AddNode(const ShellFolder: IShellFolder;
FQ_IDList, IDList: PItemIDList; const ParentNode: TTreeNode): TListItem;
always protect this stuff to make sure it gets reset.
function AlphaSort: Boolean;
CustomSort
procedure CNNotify(var Message: TWMNotify);
FreeAllItemData} (*******************************************************************************
CNNotify: Trap notification messages sent to the window.
This is damn silly, but it's the only way we can know when an item is being
deleted. I think it's an oversight in the VCL, so until Borland fixes it,
just live with it.
procedure CreateColumns(ColType: TColumnType);
This will be based on what type of stuff we are enumerating eventually
procedure CreateWnd;
function CustomSort(SortProc: TLVCompare; Data: Longint): Boolean;
Status is returned in the 'code' portion (low word) of the result. Search for 'HResult' in Winodws.pas to read more about it. 0 means sort by name.
function EnumerateFiles(const Folder: IShellFolder;
const ParentNode: TTreeNode): boolean;
function GetItemData(Item: TListItem): TFolderItemData;
CNNotify
procedure Loaded;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);
try
procedure SetColumnType(ColType: TColumnType);
procedure SetShowFolders(Val: boolean);
function AddItemData(ItemFolder: IShellFolder; aIDList,
aFQ_IDList: PItemIDList; Attrs: UINT): TFolderItemData;
AddNode
procedure FreeAllItemData;
FreeItemData
procedure FreeItemData(Item: TListItem);
AddItemDta
function GetValidHandle: HWND;
ResetTreeView
property Align :
Published protected properties
property AllocBy :
property BorderStyle :
property Color :
property ColumnClick :
property Columns :
property ColumnType : TColumnType
property Ctl3D :
property DragCursor :
property DragMode :
property Font :
property HideSelection :
property IconOptions :
property Items :
property MultiSelect :
property ParentShowHint :
property PopupMenu :
property ReadOnly :
property ShowColumnHeaders :
property ShowFolders : boolean
property ShowHiddenFiles : boolean
property ShowHint :
property SortType :
property TabOrder :
property TabStop :
property ViewStyle :
property Visible :
property ShowErrorsInMsgBox : boolean
event OnAddListItem : TSLVAddListItem
event OnChange :
event OnChanging :
event OnClick :
event OnColumnClick :
event OnCompare :
event OnCreateColumns : TSLVCreateColumns
this stuff can't be saved with the form. It has to be read every time for obvious reasons.
event OnDblClick :
event OnDeletion :
event OnDragDrop :
event OnDragOver :
event OnEdited :
event OnEditing :
event OnEndDrag :
event OnEnter :
event OnExit :
event OnInsert :
event OnKeyDown :
event OnKeyPress :
event OnKeyUp :
event OnMouseDown :
event OnMouseMove :
event OnMouseUp :
event OnStartDrag :
FColumnType : TColumnType;
FLastNode : TTreeNode;
FOnAddListItem : TSLVAddListItem;
FOnCreateColumns : TSLVCreateColumns;
FShowErrorsInMsgBox : boolean;
FShowFolders : boolean;
FShowHiddenFiles : boolean;
This will eventually be a set of attributes (system, read-only, etc.