📄 advcardlist.hpp
字号:
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 + -