当前位置:文档之家› 最新修改版树形表格(treeviewgrid)控件代码

最新修改版树形表格(treeviewgrid)控件代码

最新修改版树形表格(treeviewgrid)控件代码unit srListview;interfaceusesSysUtils, windows, Classes, Controls, ComCtrls, Types, messages, Graphics,imgList, mask, forms,stdCtrls;typeTdataType = (dtString, dtInteger, dtFloat, dtPercentage);Tsrlistview = class(TListView)private{ Privatedeclarations }FhdHandle: integer;FHdNewProc: pointer;FHdOldProc: pointer;FTextoffSet: integer;FclSelected: TColor;FclTitleEnd: TColor;FclTitleBegin: TColor;bmp:TbitMap;FclBegin:TColor;FclFrame:TColor;functionGetHeaderSectionRect(Index: Integer): TRect;procedureHeaderProc(var Message: TMessage);procedureDrawHeaderSection(Cnvs: TCanvas; Column: TListColumn; index:integer;Active, Pressed: Boolean; R: TRect);procedureWMParentNotify(var Message: TWMParentNotify); message WM_PARENTNOTIFY;procedureWMNCPAINT(var Message: TWMNCPAINT); message WM_NCPAINT;procedureSetclSelected(const Value: TColor);procedureSetclTitleBegin(const Value: TColor);procedureSetclTitleEnd(const Value: TColor);procedureSetTextoffSet(const Value: integer);procedureSetclBegin(const Value: TColor);procedureSetclFrame(const Value: TColor); protected{ Protecteddeclarations }procedureDrawheader(Dc: HDc);public{ Publicdeclarations }procedureinvalidate; override;constructorCreate(Aowner: TComponent); override;destructorDestroy; override;published{ Publisheddeclarations }propertyclTitleBegin: TColor read FclTitleBegin write SetclTitleBegin;propertyclTitleEnd: TColor read FclTitleEnd write SetclTitleEnd;propertyclSelected: TColor read FclSelected write SetclSelected;propertyTextoffSet: integer read FTextoffSet write SetTextoffSet;propertyclBegin: TColor read FclBegin write SetclBegin;propertyclFrame: TColor read FclFrame write SetclFrame;end;TcolTreeView = class;TTreeColumn = class(TCollectionItem) privateFColWidth:integer;FTitle:string;FColor:TColor;FTransParent: boolean;FAlign:TAlignment;FTextoffset:integer;FCharCase: TEditCharCase;FallowSort:boolean;FdataType: TDataType;procedureSetColor(const Value: TColor);procedureSetTitle(const Value: string);procedureSetcolWidth(const Value: integer);proceduresetTransparent(const Value: boolean); protectedfunctionGetDisplayName: string; override; publicconstructorCreate(Collection: TCollection); override;procedureAssign(Source: TPersistent); override; publishedpropertyTiTle: string read FTitle write SetTitle;propertyColwidth: integer read FColWidth write SetcolWidth;propertyColor: TColor read FColor write SetColor;propertyAlign: TAlignment read FAlign write FAlign;propertyTextoffset: integer Read FTextoffset write FTextoffset;propertyTransparent: boolean read FTransParent write setTransparent;propertyCharCase: TEditCharCase Read FCharCase write FCharCase;propertyallowSort: boolean read FallowSort write FallowSort;propertydataType: TDataType read FdataType Write FDataType;end;TTreeColumnClass = class of TTreeColumn; TTreeColumns = class(TCollection)privateFTreeView:TcolTreeView;functionGetColumn(Index: Integer): TTreeColumn;procedureSetColumn(Index: Integer; Const Value: TTreeColumn); protectedprocedureUpdate(Item: TCollectionItem); override;publicconstructorCreate(TreeView: TcolTreeView; ColumnClass: TTreeColumnClass);propertyItems[Index: Integer]: TTreeColumn read GetColumn write SetColumn;end;TcolNode=class(TTreeNode)privateFisBottomLevel: Boolean;FTexts:TStrings;Fid:integer;protected//publicconstructorCreate(AOwner: TTreeNodes);destructorDestroy; override;property id:integer read Fid write Fid;propertyisBottomLevel: Boolean read FisBottomLevel writeFisBottomLevel;propertyTexts: TStrings read FTexts write FTexts;end;TsrTreeView = class(TTreeView) publishedpropertyOnMouseWheel;property OnMouseWheelDown;property OnMouseWheelUp;end;// TcolTreeView = class;TtvEdit = class(TmaskEdit)privateFTreeView:TcolTreeView;procedureWmpaint(var msg: TWMPaint); message WM_PAINT; protectedprocedureKeyDown(var Key: Word; Shift: TShiftState); override;procedureCreateParams(var Params: TCreateParams); override; publicprocedurehide;procedureBoundsChanged;end;TCustomDrawImage = procedure(Sender: Tobject; node: TcolNode; Acanvas: Tcanvas; x, y: integer) of object;TCustomDrawText = procedure(Sender: Tobject; node: TcolNode; Acanvas: Tcanvas;Acol:integer; ARect: TRect; dfDraw: boolean) of object;TonVerifyText = procedure(sender: Tobject; Text: string) of object;TcolTreeView = class(TTreeView)private{ Privatedeclarations }Desc: boolean;FsortCol: integer;FEditor: TtvEdit;FclSelected: TColor;FclTitleEnd: TColor;FclTitleBegin: TColor;FclBegin: TColor;FclFrame:TColor;FCloumns: TTreeColumns;FColumns: TTreeColumns;FHeadHeight: integer;FFlatHead:boolean;FCol:integer;FevenRow: boolean;FexPandIndex: TImageIndex;FcollapseIndex: TimageIndex;FAllowEdit:boolean;FCustomDrawImage: TCustomDrawImage; FonVerifyText: TonVerifyText; FCustomDrawText: TCustomDrawText;proceduredoCompare(Sender: TObject; Node1, Node2: TTreeNode; Data: Integer; var Compare: Integer);procedurecsDrawRow(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);procedureWMNCPAINT(var Message: TWMNCPAINT); message WM_NCPAINT;procedureWMNCCalcSize(var Message: TWMNCCalcSize); message WM_NCCALCSIZE;procedureWMNCHitTest(var Msg: TWMNCHitTest); messageWM_NCHITTEST;procedureWMNCLButtonDown(var Message: TWMNCLButtonDown); messageWM_NCLBUTTONDOWN;procedureSetclSelected(const Value: TColor);procedureSetclTitleBegin(const Value: TColor);procedureSetclTitleEnd(const Value: TColor);procedureSetclBegin(const Value: TColor);procedureSetclFrame(const Value: TColor);procedureSetColumns(const Value: TTreeColumns);procedureSetCol(const Value: integer);procedureDrawCell(Acol: integer; Node: TColNode);procedureCreateEditor;functionCompareStr(s1, s2: string): integer;functionCompareInt(s1, s2: string): integer;functionCompareFloat(s1, s2: string): integer;functionComparePercent(s1, s2: string): integer; protected{ Protecteddeclarations }functionCreateNode: TTreeNode; override;procedureMouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;procedureKeyDown(var Key: Word; Shift: TShiftState); override; public{ Publicdeclarations }procedureinvalidate; override;functionHeadRect: TRect;functiongetTitleRect(index: integer): TRect;functionCellRect(Acol: integer; Node: TcolNode; TextOnly: boolean = false):TRect;functionCellText(Acol: integer; Node: TcolNode): string;proceduresetCellText(Acol: integer; Node: TcolNode; Value: string);functionmouseToCol(x, y: integer; Node: TcolNode): integer;functionMouseToTitle(x, y: integer): integer;procedureshowEditor(Acol: integer);procedureHideEditor;procedurecanelEdit;proceduresort(TitleIndex: integer);constructorCreate(Aowner: TComponent); override;destructorDestroy; override;propertyCol: integer read FCol write SetCol; published{ Publisheddeclarations }propertyclTitleBegin: TColor read FclTitleBegin write SetclTitleBegin;propertyclTitleEnd: TColor read FclTitleEnd write SetclTitleEnd;propertyclSelected: TColor read FclSelected write SetclSelected;propertyclBegin: TColor read FclBegin write SetclBegin;propertyclFrame: TColor read FclFrame write SetclFrame;propertyColumns: TTreeColumns read FColumns write SetColumns;propertyHeadHeight: integer read FHeadHeight write Fheadheight;propertyFlatHead: boolean Read FFlatHead write FFlatHead;propertyExpandIndex: TImageIndex Read FexPandIndex write FexPandIndex;。

相关主题