cxgridcardview.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,418 行 · 第 1/5 页
PAS
1,418 行
function DropDownWindowExists: Boolean; override;
function GetDropDownWindow: TcxCustomGridPopup; override;
function GetDropDownWindowOwnerBounds: TRect; override;
function IsDropDownWindowOwner: Boolean; override;
property DropDownWindow: TcxGridFilterPopup read GetDropDownWindowValue;
public
constructor Create(ARowCaptionViewInfo: TcxGridCardRowCaptionViewInfo); reintroduce; virtual;
property Active: Boolean read GetActive;
property Row: TcxGridCardViewRow read GetRow;
property RowCaptionViewInfo: TcxGridCardRowCaptionViewInfo read FRowCaptionViewInfo;
end;
TcxGridCardRowCaptionViewInfoClass = class of TcxGridCardRowCaptionViewInfo;
TcxGridCardRowCaptionViewInfo = class(TcxGridCardRowCellViewInfo)
private
FCalculatingRealWidth: Boolean;
FFilterButtonViewInfo: TcxGridCardRowFilterButtonViewInfo;
function GetRealWidth: Integer;
protected
function CalculateHeight: Integer; override;
class function CalculateSimpleHeight(ARow: TcxGridCardViewRow;
ACanvas: TcxCanvas; AFont: TFont): Integer; virtual;
function CalculateRealWidth: Integer; virtual;
function CalculateWidth: Integer; override;
function CanFilter: Boolean; virtual;
function CanShowAutoHint: Boolean; override;
function CanShowCustomHint: Boolean; override;
function CanShowEdit: Boolean; override;
function GetAlignmentHorz: TAlignment; override;
function GetAlignmentVert: TcxAlignmentVert; override;
function GetAutoHeight: Boolean; override;
function GetFilterButtonBounds: TRect; virtual;
function GetFilterButtonViewInfoClass: TcxGridCardRowFilterButtonViewInfoClass; virtual;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetHotTrack: Boolean; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
function GetShowEndEllipsis: Boolean; override;
function GetText: string; override;
function GetTextAreaBounds: TRect; override;
procedure GetViewParams(var AParams: TcxViewParams); override;
function GetVisible: Boolean; override;
procedure InitHitTest(AHitTest: TcxCustomGridHitTest); override;
function UseStandardNeedShowHint: Boolean; override;
property CalculatingRealWidth: Boolean read FCalculatingRealWidth;
property FilterButtonBounds: TRect read GetFilterButtonBounds;
public
constructor Create(ARowViewInfo: TcxGridCardRowViewInfo); override;
destructor Destroy; override;
procedure Calculate(ALeftBound, ATopBound: Integer; AWidth: Integer = -1;
AHeight: Integer = -1); override;
function GetHitTest(const P: TPoint): TcxCustomGridHitTest; override;
property FilterButtonViewInfo: TcxGridCardRowFilterButtonViewInfo read FFilterButtonViewInfo;
property RealWidth: Integer read GetRealWidth;
end;
TcxGridCardRowDataViewInfoClass = class of TcxGridCardRowDataViewInfo;
TcxGridCardRowDataViewInfo = class(TcxGridCardRowCellViewInfo)
protected
function CalculateHeight: Integer; override;
class function CalculateSimpleHeight(ARow: TcxGridCardViewRow;
ACanvas: TcxCanvas; AFont: TFont): Integer; virtual;
function CalculateWidth: Integer; override;
function GetAutoHeight: Boolean; override;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetText: string; override;
procedure GetViewParams(var AParams: TcxViewParams); override;
function GetVisible: Boolean; override;
end;
TcxGridCardRowViewInfoClass = class of TcxGridCardRowViewInfo;
TcxGridCardRowViewInfo = class(TcxCustomGridViewCellViewInfo)
private
FCaptionViewInfo: TcxGridCardRowCaptionViewInfo;
FCardViewInfo: TcxGridCardViewInfo;
FDataViewInfo: TcxGridCardRowDataViewInfo;
FHeight: Integer;
FIndex: Integer;
FPartVisible: Boolean;
function GetExpandButtonAreaSizeValue: Integer;
function GetExpandButtonSizeValue: Integer;
function GetExpanded: Boolean;
function GetGridView: TcxGridCardView;
function GetGridRecord: TcxGridCard;
function GetGridViewInfo: TcxGridCardViewViewInfo;
//function GetMaxHeight: Integer;
function GetRow: TcxGridCardViewRow;
procedure SetExpanded(Value: Boolean);
function CalculatePartVisible: Boolean;
function CalculateVisible: Boolean;
procedure CreateViewInfos;
procedure DestroyViewInfos;
protected
function CalculateContentBounds: TRect; override;
function CalculateHeaderWidth: Integer; virtual;
function CalculateHeight: Integer; override;
class function CalculateSimpleHeight(ARow: TcxGridCardViewRow; ACanvas: TcxCanvas): Integer; virtual;
function CalculateWidth: Integer; override;
class procedure CheckHeight(ACardViewInfoClass: TcxGridCardViewInfoClass;
ARow: TcxGridCardViewRow; ARowViewInfo: TcxGridCardRowViewInfo;
ALookAndFeelPainter: TcxCustomLookAndFeelPainterClass; var AHeight: Integer); virtual;
class function GetCaptionViewInfoClass: TcxGridCardRowCaptionViewInfoClass; virtual;
function GetCaptionWidth: Integer; virtual;
class function GetDataViewInfoClass: TcxGridCardRowDataViewInfoClass; virtual;
function GetDataWidth: Integer; virtual;
function GetDesignSelectionBounds: TRect; override;
function GetExpandButtonAreaBounds: TRect; virtual;
class function GetExpandButtonAreaSize(ALookAndFeelPainter: TcxCustomLookAndFeelPainterClass): Integer; virtual;
function GetExpandButtonBounds: TRect; virtual;
class function GetExpandButtonSize(ALookAndFeelPainter: TcxCustomLookAndFeelPainterClass): Integer; virtual;
function GetHeaderWidth: Integer; virtual;
function GetHeight: Integer; override;
function GetHidden: Boolean; virtual;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetIndent: Integer; virtual;
function GetIndentBounds: TRect; virtual;
function GetIndentViewParams: TcxViewParams; virtual;
function GetIsDesignSelected: Boolean; override;
function GetIsVisibleForPainting: Boolean; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
class function GetSimpleViewParams(ARow: TcxGridCardViewRow; AIsCaption: Boolean): TcxViewParams; virtual;
function GetWidth: Integer; override;
procedure InitHitTest(AHitTest: TcxCustomGridHitTest); override;
procedure GetCaptionViewParams(var AParams: TcxViewParams; AIgnoreSelection: Boolean); virtual; abstract;
procedure GetDataViewParams(var AParams: TcxViewParams); virtual; abstract;
property CaptionWidth: Integer read GetCaptionWidth;
property DataWidth: Integer read GetDataWidth;
property ExpandButtonAreaSize: Integer read GetExpandButtonAreaSizeValue;
property ExpandButtonSize: Integer read GetExpandButtonSizeValue;
property Indent: Integer read GetIndent;
//!!!property MaxHeight: Integer read GetMaxHeight;
public
constructor Create(ACardViewInfo: TcxGridCardViewInfo; AIndex: Integer); reintroduce; virtual;
destructor Destroy; override;
procedure BeforeRecalculation; override;
procedure Calculate(const ABounds: TRect); override;
function CalculateVisibleCounts(var AVisibleRowCount, APartVisibleRowCount: Integer): Boolean;
procedure CalculateVisibles;
function GetHitTest(const P: TPoint): TcxCustomGridHitTest; override;
function HasExpandButton: Boolean; virtual;
function HasIndent: Boolean; virtual;
function HasLimitedHeaderSpace: Boolean; virtual;
function MouseDown(AHitTest: TcxCustomGridHitTest; AButton: TMouseButton;
AShift: TShiftState): Boolean; override;
property CaptionViewInfo: TcxGridCardRowCaptionViewInfo read FCaptionViewInfo;
property CardViewInfo: TcxGridCardViewInfo read FCardViewInfo;
property DataViewInfo: TcxGridCardRowDataViewInfo read FDataViewInfo;
property ExpandButtonAreaBounds: TRect read GetExpandButtonAreaBounds;
property ExpandButtonBounds: TRect read GetExpandButtonBounds;
property Expanded: Boolean read GetExpanded write SetExpanded;
property GridRecord: TcxGridCard read GetGridRecord;
property GridView: TcxGridCardView read GetGridView;
property GridViewInfo: TcxGridCardViewViewInfo read GetGridViewInfo;
property HeaderWidth: Integer read GetHeaderWidth;
property Height: Integer read GetHeight write FHeight;
property Hidden: Boolean read GetHidden;
property IndentBounds: TRect read GetIndentBounds;
property Index: Integer read FIndex;
property PartVisible: Boolean read FPartVisible;
property Row: TcxGridCardViewRow read GetRow;
end;
// data row
TcxGridCardDataRowDataViewInfo = class(TcxGridCardRowDataViewInfo)
protected
function CalculateSelected: Boolean; override;
end;
TcxGridCardDataRowViewInfo = class(TcxGridCardRowViewInfo)
protected
procedure GetCaptionViewParams(var AParams: TcxViewParams; AIgnoreSelection: Boolean); override;
class function GetDataViewInfoClass: TcxGridCardRowDataViewInfoClass; override;
procedure GetDataViewParams(var AParams: TcxViewParams); override;
class function GetSimpleViewParams(ARow: TcxGridCardViewRow; AIsCaption: Boolean): TcxViewParams; override;
end;
// caption row
TcxGridCardCaptionRowCaptionViewInfo = class(TcxGridCardRowCaptionViewInfo)
protected
function GetTextAreaBounds: TRect; override;
end;
TcxGridCardCaptionRowDataViewInfo = class(TcxGridCardRowDataViewInfo)
protected
procedure GetEditViewDataContentOffsets(var R: TRect); override;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetTextAreaBounds: TRect; override;
end;
TcxGridCardCaptionRowViewInfo = class(TcxGridCardRowViewInfo)
protected
class function GetCaptionViewInfoClass: TcxGridCardRowCaptionViewInfoClass; override;
procedure GetCaptionViewParams(var AParams: TcxViewParams; AIgnoreSelection: Boolean); override;
class function GetDataViewInfoClass: TcxGridCardRowDataViewInfoClass; override;
procedure GetDataViewParams(var AParams: TcxViewParams); override;
procedure GetViewParams(var AParams: TcxViewParams); override;
end;
// category row
TcxGridCardCategoryRowViewInfo = class(TcxGridCardCaptionRowViewInfo)
protected
class procedure CheckHeight(ACardViewInfoClass: TcxGridCardViewInfoClass;
ARow: TcxGridCardViewRow; ARowViewInfo: TcxGridCardRowViewInfo;
ALookAndFeelPainter: TcxCustomLookAndFeelPainterClass; var AHeight: Integer); override;
function GetBorderColor(AIndex: TcxBorder): TColor; override;
function GetBorders: TcxBorders; override;
function GetBorderWidth(AIndex: TcxBorder): Integer; override;
procedure GetDataViewParams(var AParams: TcxViewParams); override;
function GetSeparatorColor: TColor; virtual;
function HasSeparator: Boolean; overload;
class function HasSeparator(ACardViewInfoClass: TcxGridCardViewInfoClass;
ARow: TcxGridCardViewRow): Boolean; overload;
property SeparatorColor: TColor read GetSeparatorColor;
public
function GetHitTest(const P: TPoint): TcxCustomGridHitTest; override;
end;
// card scroll buttons
TcxCustomGridCardScrollButtonViewInfo = class(TcxCustomGridViewCellViewInfo)
private
FCardViewInfo: TcxGridCardViewInfo;
FScrollTimer: TcxTimer;
procedure ScrollTimerHandler(Sender: TObject);
protected
function CalculateHeight: Integer; override;
function CalculateWidth: Integer; override;
function CaptureMouseOnPress: Boolean; override;
function GetHotTrack: Boolean; override;
function GetIsDownButton: Boolean; virtual; abstract;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
procedure InitHitTest(AHitTest: TcxCustomGridHitTest); override;
procedure Scroll; virtual; abstract;
procedure StateChanged(APrevState: TcxGridCellState); override;
procedure StartAutoScrolling;
procedure StopAutoScrolling;
property ScrollTimer: TcxTimer read FScrollTimer;
public
constructor Create(ACardViewInfo: TcxGridCardViewInfo); reintroduce; virtual;
property IsDownButton: Boolean read GetIsDownButton;
property CardViewInfo: TcxGridCardViewInfo read FCardViewInfo;
end;
TcxGridCardScrollButtonDownViewInfoClass = class of TcxGridCardScrollButtonDownViewInfo;
TcxGridCardScrollButtonDownViewInfo = class(TcxCustomGridCardScrollButtonViewInfo)
protected
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetIsDownButton: Boolean; override;
function GetVisible: Boolean; override;
procedure Scroll; override;
end;
TcxGridCardScrollButtonUpViewInfoClass = class of TcxGridCardScrollButtonUpViewInfo;
TcxGridCardScrollButtonUpViewInfo = class(TcxCustomGridCardScrollButtonViewInfo)
protected
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetIsDownButton: Boolean; override;
function GetVisible: Boolean; override;
procedure Scroll; override;
end;
// card expand button
TcxGridCardExpandButtonViewInfoClass = class of TcxGridCardExpandButtonViewInfo;
TcxGridCardExpandButtonViewInfo = class(TcxCustomGridViewCellViewInfo)
private
FCardViewInfo: TcxGridCardViewInfo;
protected
function CalculateHeight: Integer; override;
function CalculateWidth: Integer; override;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?