📄 bsskinshellctrls.pas
字号:
property VScrollBar;
property SkinData;
property AutoContextMenus;
property ObjectTypes;
property Root;
property ShellComboBox;
property ShellListView;
property UseShellImages;
property OnAddFolder;
property Align;
property Anchors;
property AutoRefresh;
property BorderStyle;
property ChangeDelay;
property Color;
property Cursor;
property DragCursor;
property DragMode;
property Enabled;
property Font;
property HideSelection;
property Images;
property Indent;
property ParentColor;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property RightClickSelect;
property ShowButtons;
property ShowHint;
property ShowLines;
property ShowRoot;
property StateImages;
property TabOrder;
property TabStop default True;
property Visible;
property OnClick;
property OnEnter;
property OnExit;
property OnDragDrop;
property OnDragOver;
property OnStartDrag;
property OnEndDrag;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnDblClick;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnChanging;
property OnChange;
property OnExpanding;
property OnCollapsing;
property OnCollapsed;
property OnExpanded;
property OnEditing;
property OnEdited;
property OnGetImageIndex;
property OnGetSelectedIndex;
end;
{ TbsCustomShellListView }
TbsCustomShellListView = class(TbsSkinCustomListView, IShellCommandVerb)
private
FOldRoot: TRoot;
FRoot: TRoot;
FRootFolder: TbsShellFolder;
FAutoContext,
FAutoRefresh,
FAutoNavigate,
FSorted,
FUpdating: Boolean;
FObjectTypes: TShellObjectTypes;
FLargeImages,
FSmallImages: Integer;
FOnAddFolder: TAddFolderEvent;
FFolders: TList;
FTreeView: TbsCustomShellTreeView;
FComboBox: TbsCustomShelLComboBox;
FNotifier: TbsShellChangeNotifier;
FOnEditing: TLVEditingEvent;
FSettingRoot: boolean;
FSavePath: string;
FMask: String;
FOnPathChanged: TNotifyEvent;
procedure SetMask(const Value: String);
procedure EnumColumns;
function GetFolder(Index: Integer): TbsShellFolder;
procedure SetAutoRefresh(const Value: Boolean);
procedure SetSorted(const Value: Boolean);
procedure SetTreeView(Value: TbsCustomShellTreeView);
procedure SetComboBox(Value: TbsCustomShellComboBox);
procedure TreeUpdate(NewRoot: PItemIDList);
procedure SetPathFromID(ID: PItemIDList);
procedure SynchPaths;
function GetPath: string;
procedure SetPath(const Value: string);
protected
procedure ClearItems;
procedure CreateRoot;
procedure CreateWnd; override;
procedure DestroyWnd; override;
procedure DblClick; override;
procedure DoContextPopup(MousePos: TPoint; var Handled: Boolean); override;
procedure EditText;
procedure Edit(const Item: TLVItem); override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure Loaded; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
function OwnerDataFetch(Item: TListItem; Request: TItemRequest): Boolean; override;
function OwnerDataFind(Find: TItemFind; const FindString: string;
const FindPosition: TPoint; FindData: Pointer; StartIndex: Integer;
Direction: TSearchDirection; Wrap: Boolean): Integer; override;
procedure Populate; virtual;
procedure RootChanged;
procedure SetObjectTypes(Value: TShellObjectTypes);
procedure SetRoot(const Value: TRoot);
{$IFNDEF VER130}
procedure SetViewStyle(Value: TViewStyle); override;
{$ENDIF}
procedure WndProc(var Message: TMessage); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Back;
procedure Refresh;
function GetSelectedFile: String;
procedure GetSelectedFiles(AFiles: TStrings);
function SelectedFolder: TbsShellFolder;
property Folders[Index: Integer]: TbsShellFolder read GetFolder;
property RootFolder: TbsShellFolder read FRootFolder;
property Path: string read GetPath write SetPath;
property Items;
property Columns;
property Mask: String read FMask write SetMask;
property AutoContextMenus: Boolean read FAutoContext write FAutoContext default True;
property AutoRefresh: Boolean read FAutoRefresh write SetAutoRefresh default False;
property AutoNavigate: Boolean read FAutoNavigate write FAutoNavigate default True;
property ObjectTypes: TShellObjectTypes read FObjectTypes write SetObjectTypes;
property Root: TRoot read FRoot write SetRoot;
property ShellTreeView: TbsCustomShellTreeView read FTreeView write SetTreeView;
property ShellComboBox: TbsCustomShellComboBox read FComboBox write SetComboBox;
property Sorted: Boolean read FSorted write SetSorted;
property OnAddFolder: TAddFolderEvent read FOnAddFolder write FOnAddFolder;
property OnEditing: TLVEditingEvent read FOnEditing write FOnEditing;
procedure CommandCompleted(Verb: String; Succeeded: Boolean);
procedure ExecuteCommand(Verb: String; var Handled: Boolean);
property OnPathChanged: TNotifyEvent read FOnPathChanged write FOnPathChanged;
end;
{ TShellListView }
TbsSkinFileListView = class(TbsCustomShellListView)
published
property SkinData;
property HScrollBar;
property VScrollBar;
property HeaderSkinDataName;
property AutoContextMenus;
property AutoRefresh;
property AutoNavigate;
property ObjectTypes;
property Root;
property ShellTreeView;
property ShellComboBox;
property Mask;
property Sorted;
property OnAddFolder;
property Align;
property Anchors;
property BorderStyle;
property Color;
property ColumnClick;
property OnClick;
property OnDblClick;
property DragMode;
property ReadOnly default True;
property Enabled;
property Font;
property GridLines;
property HideSelection;
property HotTrack;
property IconOptions;
property AllocBy;
property MultiSelect;
property RowSelect;
property OnChange;
property OnChanging;
property OnColumnClick;
property OnContextPopup;
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 PopupMenu;
property ShowColumnHeaders;
property TabOrder;
property TabStop default True;
property Visible;
property ViewStyle;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnEditing;
property OnEdited;
end;
TDriveTypes = set of TbsDriveType;
TbsSkinShellDriveComboBox = class(TbsSkinCustomComboBox)
private
FDrives: TStringList;
FImages: TImageList;
FDriveTypes: TDriveTypes;
FDriveItemIndex: Integer;
FDrive: Char;
FOnChange: TNotifyEvent;
procedure SetDriveTypes(const Value: TDriveTypes);
protected
procedure CreateWnd; override;
procedure DrawItem(Cnvs: TCanvas; Index: Integer;
ItemWidth, ItemHeight: Integer; TextRect: TRect; State: TOwnerDrawState);
procedure BuildList; virtual;
procedure SetDrive(Value: Char);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure UpdateDrives;
procedure Change; override;
property Drive: Char read FDrive write SetDrive;
published
property DriveTypes: TDriveTypes read FDriveTypes write SetDriveTypes default [bsdtFloppy, bsdtFixed, bsdtNetwork, bsdtCDROM, bsdtRAM];
property OnChange: TNotifyEvent read FOnChange write FOnChange;
property AlphaBlend;
property AlphaBlendValue;
property AlphaBlendAnimation;
property AutoComplete;
property ListBoxUseSkinFont;
property ListBoxUseSkinItemHeight;
property ListBoxCaption;
property ListBoxCaptionMode;
property ListBoxDefaultFont;
property ListBoxDefaultCaptionFont;
property ListBoxDefaultItemHeight;
property ListBoxCaptionAlignment;
property Enabled;
property PopupMenu;
property ShowHint;
property TabOrder;
property TabStop;
property Visible;
property Align;
property DropDownCount;
property HorizontalExtent;
property Font;
property OnListBoxDrawItem;
property OnComboBoxDrawItem;
property OnClick;
property OnCloseUp;
property OnDropDown;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnEnter;
property OnExit;
end;
TbsItemEx = class(TCollectionItem)
public
Caption: String;
Data: TbsShellFolder;
Indent: Integer;
ImageIndex: Integer;
SelectedImageIndex: Integer;
end;
TbsItemsEx = class(TCollection)
private
function GetItem(Index: Integer): TbsItemEx;
procedure SetItem(Index: Integer; Value: TbsItemEx);
public
constructor Create;
function Add: TbsItemEx;
function Insert(Index: Integer): TbsItemEx;
procedure AddItem(ACaption: String; AImageIndex, ASelectedIndex: Integer;
AIdent: Integer; AFolder: TbsShellFolder);
property Items[Index: Integer]: TbsItemEx read GetItem write SetItem; default;
end;
TbsCustomShellComboBox = class(TbsSkinCustomComboBox)
private
FItemsEx: TbsItemsEx;
FImages,
FImageHeight,
FImageWidth: Integer;
FImageList: TCustomImageList;
FOldRoot : TRoot;
FRoot: TRoot;
FRootFolder: TbsShellFolder;
FTreeView: TbsCustomShellTreeView;
FListView: TbsCustomShellListView;
FObjectTypes: TShellObjectTypes;
FUseShellImages,
FUpdating: Boolean;
procedure SetItemsEx(Value: TbsItemsEx);
procedure ClearItemsEx;
function GetFolder(Index: Integer): TbsShellFolder;
function GetPath: string;
procedure SetPath(const Value: string);
procedure SetPathFromID(ID: PItemIDList);
procedure SetRoot(const Value: TRoot);
procedure SetTreeView(Value: TbsCustomShellTreeView);
procedure SetListView(Value: TbsCustomShellListView);
procedure SetUseShellImages(const Value: Boolean);
function GetShellImageIndex(AFolder: TbsShellFolder): integer;
procedure CheckItems;
protected
procedure DrawItem(Cnvs: TCanvas; Index: Integer;
ItemWidth, ItemHeight: Integer; TextRect: TRect; State: TOwnerDrawState);
procedure ComboDrawItem(Cnvs: TCanvas; Index: Integer;
ItemWidth, ItemHeight: Integer; TextRect: TRect; State: TOwnerDrawState);
procedure AddItemsEx(Index: Integer; ParentFolder: TbsShellFolder);
procedure Change; override;
procedure Click; override;
procedure CreateRoot;
procedure CreateWnd; override;
procedure DestroyWnd; override;
function IndexFromID(AbsoluteID: PItemIDList): Integer;
procedure Init; virtual;
function InitItem(ParentFolder: TbsShellFolder; ID: PItemIDList): TbsShellFolder;
procedure Loaded; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure RootChanged;
procedure TreeUpdate(NewPath: PItemIDList);
procedure SetObjectTypes(Value: TShellObjectTypes); virtual;
public
constructor Create(AOwner: TComponent); override;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -