⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 advcardlist.hpp

📁 TMS component pack v4.2 for delphi
💻 HPP
📖 第 1 页 / 共 5 页
字号:
typedef void __fastcall (__closure *TAdvCardDrawCardItemProp)(System::TObject* Sender, TAdvCard* Card, TAdvCardItem* Item, Graphics::TFont* AFont, Graphics::TBrush* ABrush);

typedef void __fastcall (__closure *TAdvCardColumnResizing)(System::TObject* Sender, int &NewSize);

typedef void __fastcall (__closure *TAdvCardDelayedLoad)(System::TObject* Sender, TAdvCard* Card);

typedef void __fastcall (__closure *TAdvCardItemURLEvent)(System::TObject* Sender, int CardIndex, int ItemIndex, AnsiString URL, bool &Default);

typedef DynamicArray<int >  TSortedCards;

typedef DynamicArray<int >  TFilteredCards;

typedef DynamicArray<int >  TInClientAreaCards;

#pragma option push -b-
enum TCalcListRectsResult { clrSkipped, clrFollowed, clrNextColumn };
#pragma option pop

#pragma option push -b-
enum TControlType { ctEdit, ctMemo, ctMaskEdit, ctCheckBox, ctComboBox, ctDateTimePicker, ctOpenPictureDialog, ctCustom };
#pragma option pop

#pragma option push -b-
enum TDataChangedObject { dcoCaption, dcoItem };
#pragma option pop

class PASCALIMPLEMENTATION TCustomAdvCardList : public Controls::TCustomControl 
{
	typedef Controls::TCustomControl inherited;
	
private:
	bool FScrolling;
	Controls::TControl* FEdControl;
	TControlType FEdControlType;
	int FEdCardIndex;
	int FEdItemIndex;
	bool FEdByMouse;
	Graphics::TBitmap* FDspBMPUnchecked;
	Graphics::TBitmap* FDspBMPChecked;
	Extdlgs::TOpenPictureDialog* FOpenPictDialog;
	int FHoverCardIndex;
	int FOverItemIndex;
	int FViewedColumns;
	DynamicArray<int >  FSortedCards;
	DynamicArray<int >  FInClientAreaCards;
	int FCanvasLeft;
	int FCanvasRight;
	int FUpdateCount;
	HPEN FocusPen;
	Graphics::TPen* OldPen;
	#pragma pack(push,1)
	tagLOGBRUSH FocusPenBrush;
	#pragma pack(pop)
	bool FGridLineDragging;
	bool FCursorOverGridLine;
	int FPressedAtX;
	int FOldColumnWidth;
	int FResizingColumn;
	int FOldLeftTopCard;
	bool FSilentMouseMove;
	bool FAutoEdit;
	Graphics::TColor FBorderColor;
	int FBorderWidth;
	TAdvCardAppearance* FCardNormalAppearance;
	TAdvCardAppearance* FCardHoverAppearance;
	TAdvCards* FCards;
	TAdvCardAppearance* FCardSelectedAppearance;
	TAdvCardAppearance* FCardEditingAppearance;
	int FCardHorSpacing;
	int FCardVertSpacing;
	int FCheckBoxSize;
	TAdvGradient* FColor;
	int FColumns;
	bool FColumnSizing;
	int FColumnWidth;
	bool FFiltered;
	TAdvCardFilterSettings* FFilterSettings;
	Graphics::TColor FFocusColor;
	Graphics::TColor FGridLineColor;
	int FGridLineWidth;
	int FLeftCol;
	int FMaxColumnWidth;
	int FMinColumnWidth;
	bool FMultiSelect;
	int FPageCount;
	bool FReadOnly;
	TAdvCard* FSelectedCard;
	int FSelectedCount;
	int FSelectedIndex;
	bool FShowGridLine;
	bool FShowFocus;
	bool FShowScrollBar;
	bool FSorted;
	bool FEditMode;
	Controls::TImageList* FImages;
	bool FDblClick;
	TAdvCardSortSettings* FSortSettings;
	bool FGotoSelectedAutomatic;
	bool FDelayedCardLoad;
	Extctrls::TTimer* DelayedCardLoadTimer;
	TAdvCardItemAllowEvent FOnCardStartEdit;
	TAdvCardItemEvent FOnCardEndEdit;
	TAdvCardCaptionGetDisplText FOnCardCaptionGetDisplText;
	TAdvCardItemGetDisplText FOnCardItemGetDisplText;
	TAdvCardEvent FOnCardCaptionClick;
	TAdvCardEvent FOnCardCaptionDblClick;
	TAdvCardEvent FOnCardClick;
	TAdvCardEvent FOnCardRightClick;
	TAdvCardCompareEvent FOnCardCompare;
	TAdvCardEvent FOnCardDblClick;
	TAdvCardItemEvent FOnCardItemClick;
	TAdvCardItemEvent FOnCardItemRightClick;
	TAdvCardColumnResizing FOnColumnResizing;
	TAdvCardDrawCardItem FOnDrawCardItem;
	TAdvCardDrawCardItemProp FOnDrawCardItemProp;
	TAdvCardItemAllowEvent FOnShowCardItem;
	TAdvCardItemURLEvent FOnCardItemURLClick;
	TAdvCardDelayedLoad FOnDelayedCardLoad;
	Graphics::TColor FURLColor;
	bool __fastcall AddToClientAreaCards(TAdvCard* Card, bool FirstTime);
	void __fastcall ConvertTypeAndDoneEdit(void);
	void __fastcall ConvertTypeAndStartEdit(const Types::TRect &EditRect, int CardIndex, int ItemIndex, char StartChar);
	void __fastcall CreateDesignCards(void);
	void __fastcall ReCreateFocusPen(void);
	void __fastcall DoCardListChange(void);
	void __fastcall HandleControlKeyDown(System::TObject* Sender, Word &Key, Classes::TShiftState Shift);
	void __fastcall HandleScrBarScroll(System::TObject* Sender, Stdctrls::TScrollCode ScrollCode, int &ScrollPos);
	bool __fastcall IsInClientArea(const Types::TRect &Rect);
	Types::TRect __fastcall GetCheckBoxRect(const Types::TRect &ValueListRect, Classes::TAlignment Align, Stdctrls::TTextLayout Layout);
	bool __fastcall GetEditing(void);
	int __fastcall GetDelayedCardLoadTimerInterval(void);
	void __fastcall SetDelayedCardLoadTimerInterval(int Value);
	void __fastcall SetMouseOverCard(int CardIndex);
	void __fastcall SetBorderColor(Graphics::TColor Value);
	HIDESBASE void __fastcall SetBorderWidth(int Value);
	void __fastcall SetCardNormalAppearance(TAdvCardAppearance* Value);
	void __fastcall SetCardHoverAppearance(TAdvCardAppearance* Value);
	void __fastcall SetCardSelectedAppearance(TAdvCardAppearance* Value);
	void __fastcall SetCardEditingAppearance(TAdvCardAppearance* Value);
	void __fastcall SetCardHorSpacing(int Value);
	void __fastcall SetCardTemplate(TAdvCardTemplate* Value);
	void __fastcall SetCardVertSpacing(int Value);
	HIDESBASE void __fastcall SetColor(TAdvGradient* Value);
	void __fastcall SetColumnSizing(bool Value);
	void __fastcall SetColumnWidth(int Value);
	void __fastcall SetFiltered(bool Value);
	void __fastcall SetFilterSettings(TAdvCardFilterSettings* Value);
	void __fastcall SetFocusColor(Graphics::TColor Value);
	void __fastcall SetGridLineColor(Graphics::TColor Value);
	void __fastcall SetGridLineWidth(int Value);
	void __fastcall SetLeftCol(int Value);
	void __fastcall SetMaxColumnWidth(int Value);
	void __fastcall SetMinColumnWidth(int Value);
	void __fastcall SetMultiSelect(bool Value);
	void __fastcall SetPageCount(int Value);
	void __fastcall SetReadOnly(bool Value);
	void __fastcall SetSelectedIndex(int Value);
	void __fastcall SetShowGridLine(bool Value);
	void __fastcall SetShowFocus(bool Value);
	void __fastcall SetShowScrollBar(bool Value);
	void __fastcall SetSorted(bool Value);
	void __fastcall SetSortSettings(TAdvCardSortSettings* Value);
	void __fastcall SetDelayedCardLoad(bool Value);
	void __fastcall DelayedCardLoadTimerOnTimer(System::TObject* Sender);
	HIDESBASE MESSAGE void __fastcall CMHintShow(Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall CMMouseLeave(Messages::TMessage &Message);
	MESSAGE void __fastcall WMGetDlgCode(Messages::TWMNoParams &Message);
	HIDESBASE MESSAGE void __fastcall WMSetFocus(Messages::TWMSetFocus &Message);
	HIDESBASE MESSAGE void __fastcall WMKillFocus(Messages::TWMKillFocus &Message);
	AnsiString __fastcall GetVersion();
	void __fastcall SetVersion(const AnsiString Value);
	void __fastcall SetURLColor(const Graphics::TColor Value);
	
protected:
	TAdvCardTemplate* FCardTemplate;
	Stdctrls::TScrollBar* ScrollBar;
	virtual void __fastcall LocateByChar(char Key);
	virtual bool __fastcall JumpToCard(int Offset, bool ToBegin, bool ToEnd);
	virtual bool __fastcall JumpToItem(int Offset, bool ToBegin, bool ToEnd);
	virtual void __fastcall UpdateScrollBar(void);
	virtual void __fastcall OnScroll(int &ScrollPos, Stdctrls::TScrollCode ScrollCode);
	virtual void __fastcall CreateTemplate(TAdvCards* Cards);
	TCalcListRectsResult __fastcall CalcListRects(TAdvCard* Card, TAdvCard* AfterCard, bool DoCheckScroll);
	virtual void __fastcall DataChanged(TAdvCard* Card, TAdvCardItem* Item, TDataChangedObject DataObject);
	virtual void __fastcall SelectedChanged(void);
	virtual void __fastcall ColumnSized(void);
	void __fastcall ShiftListRects(int Value);
	bool __fastcall InValueRect(int X, TAdvCard* ACard, TAdvCardTemplateItem* ATemplate, TAdvCardItem* AItem);
	DYNAMIC void __fastcall Click(void);
	virtual void __fastcall CreateWnd(void);
	DYNAMIC void __fastcall DblClick(void);
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation AOperation);
	virtual void __fastcall DrawItemCaption(Graphics::TCanvas* Canvas, TAdvCard* Card, int ItemIndex, bool Preview);
	virtual void __fastcall DrawItemValue(Graphics::TCanvas* Canvas, TAdvCard* Card, int ItemIndex, bool Preview);
	virtual void __fastcall DrawCard(Graphics::TCanvas* Canvas, TAdvCard* Card, bool Preview);
	virtual void __fastcall DoFilter(bool Filtered);
	void __fastcall UpdateCards(bool AClientRects, bool AListRects, bool ASort, bool AFilter);
	virtual void __fastcall Paint(void);
	void __fastcall PaintCard(int CardIndex);
	DYNAMIC void __fastcall Resize(void);
	virtual void __fastcall DoSort(bool Sorted);
	DYNAMIC void __fastcall KeyDown(Word &Key, Classes::TShiftState Shift);
	DYNAMIC void __fastcall KeyPress(char &Key);
	DYNAMIC void __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
	DYNAMIC void __fastcall MouseUp(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
	DYNAMIC void __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y);
	void __fastcall HandleAppearanceChange(System::TObject* Sender, bool EnabledChanged);
	void __fastcall HandleColorChange(System::TObject* Sender);
	void __fastcall CardTemplateChanged(void);
	void __fastcall CardTemplateItemChanged(TAdvCardTemplateItem* Item);
	void __fastcall CardTemplateItemHideCondChanged(TAdvCardTemplateItem* Item);
	void __fastcall DefaultValueChanged(TAdvCardTemplateItem* TItem);
	void __fastcall CardChanged(TAdvCard* Card);
	void __fastcall CardOrderCountChanged(void);
	void __fastcall HandleSortSettingsChange(System::TObject* Sender);
	void __fastcall HandleFilterSettingsChange(System::TObject* Sender);
	virtual int __fastcall GetVersionNr(void);
	void __fastcall Filter(void);
	void __fastcall Sort(void);
	
public:
	__property int CanvasRight = {read=FCanvasRight, nodefault};
	__property int Columns = {read=FColumns, nodefault};
	__property TAdvCards* Cards = {read=FCards};
	__property int LeftCol = {read=FLeftCol, write=SetLeftCol, nodefault};
	__property bool AutoEdit = {read=FAutoEdit, write=FAutoEdit, default=1};
	__property Graphics::TColor BorderColor = {read=FBorderColor, write=SetBorderColor, default=-16777206};
	__property int BorderWidth = {read=FBorderWidth, write=SetBorderWidth, default=1};
	__property TAdvCardAppearance* CardEditingAppearance = {read=FCardEditingAppearance, write=SetCardEditingAppearance};
	__property TAdvCardAppearance* CardNormalAppearance = {read=FCardNormalAppearance, write=SetCardNormalAppearance};
	__property TAdvCardAppearance* CardSelectedAppearance = {read=FCardSelectedAppearance, write=SetCardSelectedAppearance};
	__property TAdvCardAppearance* CardHoverAppearance = {read=FCardHoverAppearance, write=SetCardHoverAppearance};
	__property int CardHorSpacing = {read=FCardHorSpacing, write=SetCardHorSpacing, default=20};
	__property int CardVertSpacing = {read=FCardVertSpacing, write=SetCardVertSpacing, default=20};
	__property TAdvGradient* Color = {read=FColor, write=SetColor};
	__property bool ColumnSizing = {read=FColumnSizing, write=SetColumnSizing, default=1};
	__property int ColumnWidth = {read=FColumnWidth, write=SetColumnWidth, default=240};
	__property bool DelayedCardLoad = {read=FDelayedCardLoad, write=SetDelayedCardLoad, nodefault};
	__property int DelayedCardLoadInterval = {read=GetDelayedCardLoadTimerInterval, write=SetDelayedCardLoadTimerInterval, nodefault};
	__property bool Filtered = {read=FFiltered, write=SetFiltered, default=0};
	__property TAdvCardFilterSettings* FilterSettings = {read=FFilterSettings, write=SetFilterSettings};
	__property Graphics::TColor FocusColor = {read=FFocusColor, write=SetFocusColor, default=8421504};
	__property bool GotoSelectedAutomatic = {read=FGotoSelectedAutomatic, write=FGotoSelectedAutomatic, default=1};
	__property Graphics::TColor GridLineColor = {read=FGridLineColor, write=SetGridLineColor, default=-16777201};
	__property int GridLineWidth = {read=FGridLineWidth, write=SetGridLineWidth, default=3};
	__property Controls::TImageList* Images = {read=FImages, write=FImages};
	__property int MaxColumnWidth = {read=FMaxColumnWidth, write=SetMaxColumnWidth, default=0};
	__property int MinColumnWidth = {read=FMinColumnWidth, write=SetMinColumnWidth, default=150};
	__property bool MultiSelect = {read=FMultiSelect, write=SetMultiSelect, default=0};
	__property int PageCount = {read=FPageCount, write=SetPageCount, default=4};
	__property bool ReadOnly = {read=FReadOnly, write=SetReadOnly, default=0};
	__property bool ShowGridLine = {read=FShowGridLine, write=SetShowGridLine, default=1};
	__property bool ShowFocus = {read=FShowFocus, write=SetShowFocus, default=1};
	__property bool ShowScrollBar = {read=FShowScrollBar, write=SetShowScrollBar, default=1};
	__property bool Sorted = {read=FSorted, write=SetSorted, default=1};
	__property TAdvCardSortSettings* SortSettings = {read=FSortSettings, write=SetSortSettings};
	__property Graphics::TColor URLColor = {read=FURLColor, write=SetURLColor, default=16711680};
	__property AnsiString Version = {read=GetVersion, write=SetVersion};
	__property TAdvCardDelayedLoad OnDelayedCardLoad = {read=FOnDelayedCardLoad, write=FOnDelayedCardLoad};
	__property TAdvCardItemAllowEvent OnCardStartEdit = {read=FOnCardStartEdit, write=FOnCardStartEdit};
	__property TAdvCardItemEvent OnCardEndEdit = {read=FOnCardEndEdit, write=FOnCardEndEdit};
	__property TAdvCardCaptionGetDisplText OnCardCaptionGetDisplText = {read=FOnCardCaptionGetDisplText, write=FOnCardCaptionGetDisplText};
	__property TAdvCardItemGetDisplText OnCardItemGetDisplText = {read=FOnCardItemGetDisplText, write=FOnCardItemGetDisplText};
	__property TAdvCardEvent OnCardCaptionClick = {read=FOnCardCaptionClick, write=FOnCardCaptionClick};
	__property TAdvCardEvent OnCardCaptionDblClick = {read=FOnCardCaptionDblClick, write=FOnCardCaptionDblClick};
	__property TAdvCardEvent OnCardClick = {read=FOnCardClick, write=FOnCardClick};
	__property TAdvCardEvent OnCardRightClick = {read=FOnCardRightClick, write=FOnCardRightClick};
	__property TAdvCardCompareEvent OnCardCompare = {read=FOnCardCompare, write=FOnCardCompare};
	__property TAdvCardEvent OnCardDblClick = {read=FOnCardDblClick, write=FOnCardDblClick};
	__property TAdvCardItemEvent OnCardItemClick = {read=FOnCardItemClick, write=FOnCardItemClick};
	__property TAdvCardItemEvent OnCardItemRightClick = {read=FOnCardItemRightClick, write=FOnCardItemRightClick};
	__property TAdvCardItemURLEvent OnCardItemURLClick = {read=FOnCardItemURLClick, write=FOnCardItemURLClick};
	__property TAdvCardColumnResizing OnColumnResizing = {read=FOnColumnResizing, write=FOnColumnResizing};
	__property TAdvCardDrawCardItem OnDrawCardItem = {read=FOnDrawCardItem, write=FOnDrawCardItem};
	__property TAdvCardDrawCardItemProp OnDrawCardItemProp = {read=FOnDrawCardItemProp, write=FOnDrawCardItemProp};
	__property TAdvCardItemAllowEvent OnShowCardItem = {read=FOnShowCardItem, write=FOnShowCardItem};
	__fastcall virtual TCustomAdvCardList(Classes::TComponent* AOwner);
	__fastcall virtual ~TCustomAdvCardList(void);
	virtual void __fastcall Assign(Classes::TPersistent* Source);
	void __fastcall BeginUpdate(void);
	void __fastcall EndUpdate(void);
	TAdvCard* __fastcall CardAtXY(int x, int y, bool OnlyViewed);
	__property TAdvCardTemplate* CardTemplate = {read=FCardTemplate, write=SetCardTemplate};
	int __fastcall ItemAtXY(int x, int y, TAdvCard* Card);
	void __fastcall DeSelectAll(void);
	void __fastcall SelectAll(void);
	void __fastcall SelectCard(int CardIndex, bool Select);
	virtual TAdvCard* __fastcall FindCard(AnsiString BeginWith);
	bool __fastcall IsCardCurrentlyDisplayed(TAdvCard* Card);
	bool __fastcall GoToSelected(void);
	void __fastcall StartEdit(const Types::TRect &EditRect, int CardIndex, int ItemIndex, const Variant &Value, char StartChar);
	void __fastcall CancelEditing(void);
	void __fastcall DoneEdit(const Variant &Value);
	int __fastcall VisibleCardCount(void);
	__property int VisibleColumns = {read=FViewedColumns, nodefault};
	__property bool Editing = {read=GetEditing, nodefault};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -