| Class TSystemComboBox (unit SystemTreeView) |
TComboBox
| Constructors |
constructor Create(AOwner: TComponent);| Functions |
destructor Destroy;
procedure Reset;
procedure CreateWnd;
procedure DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState);
function EnumerateFolders(const ShellFolder: IShellFolder;
ParentItem: TFolderItemData): boolean;
procedure MeasureItem(Index: Integer; var Height: Integer);
procedure SetItemType(Val: TSCBType);
procedure WMDestroy(var Message: TWMDestroy);
procedure AddItem(const ShellFolder: IShellFolder; FQ_IDList,
IDList: PItemIDList; Indent: UINT);
function AddItemData(ItemFolder: IShellFolder; aIDList,
aFQ_IDList: PItemIDList; Attrs: UINT; aIndent: UINT): TFolderItemData;
procedure FreeAllItemData;
procedure FreeItemData(Item: integer);
function GetItemData(Item: integer): TFolderItemData;| Properties |
property ItemType : TSCBType| Events |
| Variables |
FImages : TImageList;
FItemType : TSCBType;| Constructors |
constructor Create(AOwner: TComponent);------------------------------------------------------------------------------} {------------------------------------------------------------------------------} {------------------------------------------------------------------------------} {------------------------------------------------------------------------------} {------------------------------------------------------------------------------} {------------------------------------------------------------------------------} {------------------------------------------------------------------------------} {$IFDEF STV_SYSCOMBOBOX
| Functions |
destructor Destroy;DON'T FREE THE SYSTEM IMAGE LIST!!!!! BAD IDEA (tm)!
procedure Reset;
procedure CreateWnd;Free the image list object. Doesn't release the image list handle because it doesn't belong to us, but the system. Go ahead, delete the handle and see what happens.... :) It won't crash anything, but Explorer will look a bit strange.
procedure DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState);
function EnumerateFolders(const ShellFolder: IShellFolder;
ParentItem: TFolderItemData): boolean;scbSystem
procedure MeasureItem(Index: Integer; var Height: Integer);Maybe an event for this??? No items to enum when there should be.
procedure SetItemType(Val: TSCBType);
procedure WMDestroy(var Message: TWMDestroy);This is really stupid, but DestroyWnd isn't getting called... procedure DestroyWnd; override;
procedure TSystemComboBox.DestroyWnd; begin FreeAllItemData; inherited DestroyWnd; end;
procedure AddItem(const ShellFolder: IShellFolder; FQ_IDList,
IDList: PItemIDList; Indent: UINT);BrushCopy(Bounds(Rect.Left + 2, Rect.Top, FImages.Width, FImages.Height, Bmp, Bounds(0, 0, FImages.Width, FImages.Height), FImages.BkColor);
function AddItemData(ItemFolder: IShellFolder; aIDList,
aFQ_IDList: PItemIDList; Attrs: UINT; aIndent: UINT): TFolderItemData;if
procedure FreeAllItemData;
procedure FreeItemData(Item: integer);AddItemDta
function GetItemData(Item: integer): TFolderItemData;| Properties |
property ItemType : TSCBType| Events |
| Variables |
FImages : TImageList;
FItemType : TSCBType;