Unit EnhListView

Standard defines for all Delphi Free Stuff components } // Delphi 2 and C++B 1 have incorrectly declared InsertItem as private. {.$DEFINE DFS_DEBUG} {------------------------------------------------------------------------------} { TEnhListView v3.05 } {------------------------------------------------------------------------------} { A list view control that provides enhanced functionality beyond the } { standard list view. For example, automatic sorting of simple data types, } { owner draw event for vsReport mode, and more. This does NOT require any } { special version of COMCTL32.DLL. } { Copyright 1998, Brad Stowers. All Rights Reserved. } { This component can be freely used and distributed in commercial and private } { environments, provied this notice is not modified in any way. } {------------------------------------------------------------------------------} { Feel free to contact me if you have any questions, comments or suggestions } { at bstowers@pobox.com. } { The lateset version will always be available on the web at: } { http://www.pobox.com/~bstowers/delphi/ } { See ELV.txt for notes, known issues, and revision history. } {------------------------------------------------------------------------------} { Date last modified: June 10, 1998 } {------------------------------------------------------------------------------} // C++Builder 3 requires this if you use run-time packages.

Classes

TCustomEnhListView - The new class
TEnhListView -
TEnhLVSaveSettings - Class for saved settings

Functions

Types

PIntArray
TAutoColumnSort
TAutoSortStyle
TIntArray
TLVAfterDrawItemEvent
TLVDrawItemEvent
TLVDrawSubItemEvent
TLVEditCanceled
TLVHDrawItemEvent
TLVMeasureItemEvent
TLVSortItemsEvent
TLVSortStatusEvent
TLVStyle
TResizeMethod

Constants

DFS_COMPONENT_VERSION
DRAWTEXTEX_ALIGNMENT
DRAWTEXTEX_FLAGS
WM_OWNERDRAWCOLUMNS

Variables

DefDraw_ImageOffset
DefDraw_TextOffset


Functions


Types


PIntArray = ^TIntArray

TAutoColumnSort = (acsNoSort, acsSort, acsSortToggle);

TAutoSortStyle = (assSmart, assDefault);

TIntArray = array[0..(MaxInt div SizeOf(Integer)-1)] of Integer;

TLVAfterDrawItemEvent = procedure(Control: TWinControl; var ACanvas: TCanvas;
     Index: Integer; ARect: TRect; State: TOwnerDrawState) of object

TLVDrawItemEvent = procedure(Control: TWinControl; var ACanvas: TCanvas;
     Index: Integer; ARect: TRect; State: TOwnerDrawState;
     var DefaultDrawing, FullRowSelect: boolean) of object

TLVDrawSubItemEvent = procedure(Control: TWinControl; var ACanvas: TCanvas;
     Index, SubItem: Integer; ARect: TRect; State: TOwnerDrawState;
     var DefaultDrawing: boolean) of object

TLVEditCanceled = procedure(Sender: TObject; Item: TListItem) of object

TLVHDrawItemEvent = procedure(Control: TWinControl; var ACanvas: TCanvas;
     Index: Integer; var ARect: TRect; Selected: boolean;
     var DefaultDrawing: boolean) of object

TLVMeasureItemEvent = procedure(Control: TWinControl;
     var AHeight: integer) of object

TLVSortItemsEvent = procedure(Sender: TObject; Item1, Item2: TListItem;
     SortColumn: integer; var CompResult: integer) of object

TLVSortStatusEvent = procedure(Sender: TObject; SortColumn: integer;
     Ascending: boolean) of object

TLVStyle = (lvStandard, lvOwnerDrawFixed);

TResizeMethod = (rmFitText, rmFitHeader);

Constants

DFS_COMPONENT_VERSION = 'TEnhListView v3.05'

DRAWTEXTEX_ALIGNMENT = (DT_LEFT, DT_RIGHT, DT_CENTER)

DRAWTEXTEX_FLAGS = DT_NOPREFIX or DT_SINGLELINE or DT_VCENTER or DT_END_ELLIPSIS

WM_OWNERDRAWCOLUMNS = WM_USER + 143


Variables

DefDraw_ImageOffset : integer

Offset for the text -- 5

DefDraw_TextOffset : integer

Default drawing variables