cxgridtableview.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,513 行 · 第 1/5 页
PAS
1,513 行
{********************************************************************}
{ }
{ Developer Express Visual Component Library }
{ ExpressQuantumGrid }
{ }
{ Copyright (c) 1998-2008 Developer Express Inc. }
{ ALL RIGHTS RESERVED }
{ }
{ The entire contents of this file is protected by U.S. and }
{ International Copyright Laws. Unauthorized reproduction, }
{ reverse-engineering, and distribution of all or any portion of }
{ the code contained in this file is strictly prohibited and may }
{ result in severe civil and criminal penalties and will be }
{ prosecuted to the maximum extent possible under the law. }
{ }
{ RESTRICTIONS }
{ }
{ THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES }
{ (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE }
{ SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS }
{ LICENSED TO DISTRIBUTE THE EXPRESSQUANTUMGRID AND ALL }
{ ACCOMPANYING VCL CONTROLS AS PART OF AN EXECUTABLE PROGRAM ONLY. }
{ }
{ THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED }
{ FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE }
{ COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE }
{ AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT }
{ AND PERMISSION FROM DEVELOPER EXPRESS INC. }
{ }
{ CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON }
{ ADDITIONAL RESTRICTIONS. }
{ }
{********************************************************************}
unit cxGridTableView;
{$I cxVer.inc}
interface
uses
{$IFDEF DELPHI6}
Variants,
{$ENDIF}
Windows, Messages,
Classes, Graphics, Controls, ImgList, Forms, Buttons, StdCtrls, ExtCtrls, ComCtrls,
cxClasses, cxControls, cxGraphics, cxLookAndFeels, cxLookAndFeelPainters, cxStyles,
cxStorage, cxPC, cxListBox,
cxContainer, cxEdit, cxTextEdit,
cxGrid, cxGridCommon, cxGridLevel, cxGridCustomView, cxGridCustomTableView, cxGridDetailsSite,
cxCustomData, cxData, cxDataStorage, cxFilter;
const
htGridBase = 200;
htGroupByBox = htGridBase + 1;
htColumnHeader = htGridBase + 2;
htColumnHeaderHorzSizingEdge = htGridBase + 3;
htColumnHeaderFilterButton = htGridBase + 4;
htFooter = htGridBase + 5;
htFooterCell = htGridBase + 6;
htGroupFooter = htGridBase + 7;
htGroupFooterCell = htGridBase + 8;
htRowIndicator = htGridBase + 9;
htRowSizingEdge = htGridBase + 10;
htIndicator = htGridBase + 11;
htIndicatorHeader = htGridBase + 12;
htRowLevelIndent = htGridBase + 13;
htHeader = htGridBase + 14;
htGroupSummary = htGridBase + 15;
ckHeader = 2;
ckGroupByBox = 3;
ckFooter = 4;
cxGridDefaultIndicatorWidth = 12;
cxGridCustomRowSeparatorDefaultWidth = 6;
cxGridCustomRowSeparatorMinWidth = 2;
cxGridPreviewDefaultLeftIndent = 20;
cxGridPreviewDefaultMaxLineCount = 3;
cxGridPreviewDefaultRightIndent = 5;
cxGridHeaderSizingEdgeSize = 8;
cxGridRowSizingEdgeSize = 8;
cxGridOffice11GroupRowSeparatorWidth: Integer = 2;
// record kind
rkFiltering = 2;
isColumnFirst = isCustomItemLast + 1;
isFooter = isColumnFirst;
isGroupSummary = isColumnFirst + 1;
isHeader = isColumnFirst + 2;
isColumnLast = isHeader;
bbTableFirst = bbCustomTableLast + 1;
bbFooter = bbTableFirst;
bbHeader = bbTableFirst + 1;
bbGroup = bbTableFirst + 2;
bbGroupByBox = bbTableFirst + 3;
bbIndicator = bbTableFirst + 4;
bbPreview = bbTableFirst + 5;
bbTableLast = bbPreview;
vsTableFirst = vsCustomTableLast + 1;
vsFilterRowInfoText = vsTableFirst;
vsFooter = vsTableFirst + 1;
vsGroup = vsTableFirst + 2;
vsGroupByBox = vsTableFirst + 3;
vsGroupFooterSortedSummary = vsTableFirst + 4;
vsGroupSortedSummary = vsTableFirst + 5;
vsGroupSummary = vsTableFirst + 6;
vsHeader = vsTableFirst + 7;
vsNewItemRowInfoText = vsTableFirst + 8;
vsIndicator = vsTableFirst + 9;
vsPreview = vsTableFirst + 10;
vsTableLast = vsPreview;
{$IFDEF BCB}
siFooter = 0;
siGroupFooter = 1;
siGroup = 2;
{$ENDIF}
type
TcxGridTableCustomizationForm = class;
TcxGridTableController = class;
TcxCustomGridRow = class;
TcxGridMasterDataRow = class;
TcxGridGroupRow = class;
TcxGridViewData = class;
TcxGridColumnHeaderAreaPainterClass = class of TcxGridColumnHeaderAreaPainter;
TcxGridColumnContainerViewInfo = class;
TcxGridColumnHeaderAreaViewInfoClass = class of TcxGridColumnHeaderAreaViewInfo;
TcxGridColumnHeaderAreaViewInfo = class;
TcxGridColumnHeaderFilterButtonViewInfo = class;
TcxGridColumnHeaderGlyphViewInfo = class;
TcxGridColumnHeaderViewInfoClass = class of TcxGridColumnHeaderViewInfo;
TcxGridColumnHeaderViewInfo = class;
TcxGridHeaderViewInfo = class;
TcxGridGroupByBoxViewInfo = class;
TcxGridFooterViewInfo = class;
TcxCustomGridIndicatorItemViewInfo = class;
TcxGridIndicatorHeaderItemViewInfo = class;
TcxGridIndicatorRowItemViewInfo = class;
TcxGridIndicatorFooterItemViewInfo = class;
TcxGridIndicatorViewInfo = class;
TcxGridRowFooterViewInfo = class;
TcxGridRowFootersViewInfo = class;
TcxCustomGridRowViewInfo = class;
TcxGridRowsViewInfo = class;
TcxGridTableViewInfo = class;
TcxGridTableViewInfoCacheItem = class;
TcxGridColumn = class;
TcxGridTableView = class;
TcxGridColumnContainerKind = Integer;
{ hit tests }
// custom column
TcxCustomGridColumnHitTest = class(TcxCustomGridViewHitTest)
public
Column: TcxGridColumn;
ColumnContainerKind: TcxGridColumnContainerKind;
end;
// group by box
TcxGridGroupByBoxHitTest = class(TcxCustomGridViewHitTest)
protected
class function GetHitTestCode: Integer; override;
end;
// column header
TcxGridColumnHeaderHitTest = class(TcxCustomGridColumnHitTest)
protected
class function GetHitTestCode: Integer; override;
public
function DragAndDropObjectClass: TcxCustomGridDragAndDropObjectClass; override;
end;
TcxGridColumnHeaderHorzSizingEdgeHitTest = class(TcxCustomGridColumnHitTest)
protected
class function GetHitTestCode: Integer; override;
public
function Cursor: TCursor; override;
function DragAndDropObjectClass: TcxCustomGridDragAndDropObjectClass; override;
end;
TcxGridColumnHeaderFilterButtonHitTest = class(TcxCustomGridColumnHitTest)
protected
class function GetHitTestCode: Integer; override;
end;
// header
TcxGridHeaderHitTest = class(TcxCustomGridViewHitTest)
protected
class function GetHitTestCode: Integer; override;
end;
// footer
TcxGridFooterHitTest = class(TcxCustomGridViewHitTest)
protected
class function GetHitTestCode: Integer; override;
end;
TcxGridFooterCellHitTest = class(TcxCustomGridColumnHitTest)
protected
class function GetHitTestCode: Integer; override;
public
SummaryItem: TcxDataSummaryItem;
end;
TcxGridGroupFooterHitTest = class(TcxGridFooterHitTest)
protected
class function GetHitTestCode: Integer; override;
end;
TcxGridGroupFooterCellHitTest = class(TcxGridFooterCellHitTest)
protected
class function GetHitTestCode: Integer; override;
end;
// indicator
TcxGridRowIndicatorHitTest = class(TcxGridRecordHitTest)
protected
class function GetHitTestCode: Integer; override;
public
MultiSelect: Boolean;
function Cursor: TCursor; override;
end;
TcxGridRowSizingEdgeHitTest = class(TcxGridRecordHitTest)
protected
class function GetHitTestCode: Integer; override;
public
function Cursor: TCursor; override;
function DragAndDropObjectClass: TcxCustomGridDragAndDropObjectClass; override;
end;
TcxGridIndicatorHitTest = class(TcxCustomGridViewHitTest)
protected
class function GetHitTestCode: Integer; override;
end;
TcxGridIndicatorHeaderHitTest = class(TcxGridIndicatorHitTest)
protected
class function GetHitTestCode: Integer; override;
end;
// row
TcxGridRowLevelIndentHitTest = class(TcxGridRecordHitTest)
protected
class function GetHitTestCode: Integer; override;
public
class function CanClick: Boolean; override;
end;
TcxGridGroupSummaryHitTest = class(TcxGridRecordHitTest)
private
function GetColumn: TcxGridColumn;
protected
class function GetHitTestCode: Integer; override;
public
SummaryItem: TcxDataSummaryItem;
property Column: TcxGridColumn read GetColumn;
end;
{ view data }
TcxCustomGridRowClass = class of TcxCustomGridRow;
TcxCustomGridRow = class(TcxCustomGridRecord)
private
function GetAsGroupRow: TcxGridGroupRow;
function GetAsMasterDataRow: TcxGridMasterDataRow;
function GetGridView: TcxGridTableView;
function GetGridViewLevel: TcxGridLevel;
function GetIsFilterRow: Boolean;
function GetIsNewItemRow: Boolean;
function GetViewData: TcxGridViewData;
protected
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
public
function ExpandOnDblClick: Boolean; virtual;
function SupportsCellMultiSelect: Boolean; virtual;
property AsGroupRow: TcxGridGroupRow read GetAsGroupRow;
property AsMasterDataRow: TcxGridMasterDataRow read GetAsMasterDataRow;
property GridView: TcxGridTableView read GetGridView;
property GridViewLevel: TcxGridLevel read GetGridViewLevel;
property IsFilterRow: Boolean read GetIsFilterRow;
property IsNewItemRow: Boolean read GetIsNewItemRow;
property ViewData: TcxGridViewData read GetViewData;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?