home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
sibylft1.zip
/
DOC.DAT
/
DOC
/
SPCC
/
LISTVIEW.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1997-04-07
|
6KB
|
176 lines
{╔══════════════════════════════════════════════════════════════════════════╗
║ ║
║ Sibyl Portable Component Classes ║
║ ║
║ Copyright (c) 1995,97 SpeedSoft Germany, All rights reserved. ║
║ ║
╚══════════════════════════════════════════════════════════════════════════╝}
UNIT ListView;
INTERFACE
{$IFDEF OS2}
USES Os2Def,PmWin,PmStdDlg;
{$ENDIF}
{$IFDEF Win95}
USES WinDef,WinUser,WinGDI,CommCtrl;
{$ENDIF}
USES Messages,{Rene}SysUtils,Classes,Forms,Graphics,OutLine;
TYPE
EListViewError=CLASS(Exception);
TYPE
TListViewNode=CLASS;
TListView=CLASS;
PListViewRecord=^TListViewRecord;
TListViewRecord=RECORD
{$IFDEF OS2}
RecordCore:RECORDCORE;
{$ENDIF}
{$IFDEF Win95}
RecordCore:LV_ITEM;
{$ENDIF}
Node:TListViewNode; {extra data}
END;
TListViewNode=CLASS
PRIVATE
FTreeRec:PListViewRecord;
FCaption:PChar;
FData:POINTER;
FIndex:LONGINT;
FListView:TListView;
FBitmap:TBitmap;
PRIVATE
FUNCTION GetCaption:STRING;
PROCEDURE SetCaption(NewCaption:STRING);
FUNCTION GetBitmap:TBitmap;
PROCEDURE SetBitmap(NewBitmap:TBitmap);
PUBLIC
CONSTRUCTOR Create(Owner:TListView);
DESTRUCTOR Destroy;OVERRIDE;
PUBLIC
PROPERTY Data:Pointer read FData write FData;
PROPERTY Text:STRING read GetCaption write SetCaption;
PROPERTY Bitmap:TBitmap read GetBitmap write SetBitmap;
PROPERTY Index:LONGINT read FIndex;
END;
TListViewNodeClass=CLASS OF TListViewNode;
{$M+}
TListViewItemSelectEvent=PROCEDURE(Sender:TObject;Index:LONGINT) OF OBJECT;
{$M-}
TListView=CLASS(TControl)
PRIVATE
FBitmapSize:TSize;
FInitNodes:TList;
FNodes:TList;
FNodeClass:TListViewNodeClass;
FPictureList:TBitmapList;
FMultipleSel:BOOLEAN;
FBorderStyle:TBorderStyle;
FPopupPos:TPoint;
{$IFDEF Win95}
FHim:HIMAGELIST;
{$ENDIF}
FOnItemSelect:TListViewItemSelectEvent;
PRIVATE
{$IFDEF OS2}
PROCEDURE WMPaint(VAR Msg:TMessage);message WM_PAINT;
{$ENDIF}
PROCEDURE SetCnrInfo;
PROCEDURE SetupImageList;
PROCEDURE SetupList;
FUNCTION AddPicture(NewBitmap:TBitmap):TBitmap;
FUNCTION Get(Index:LONGINT):TListViewNode;
FUNCTION GetItemCount:LONGINT;
PROCEDURE UpdateNode(Node:TListViewNode);
PROCEDURE SetBorderStyle(NewBorder:TBorderStyle);
FUNCTION GetItemIndex:LONGINT;
PROCEDURE SetItemIndex(NewValue:LONGINT);
FUNCTION GetSelect(Index:LONGINT):BOOLEAN;
PROCEDURE SetSelect(Index:LONGINT;NewValue:BOOLEAN);
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
{$IFDEF OS2}
PROCEDURE SetupShow;OVERRIDE;
{$ENDIF}
PROCEDURE GetClassData(VAR ClassData:TClassData);OVERRIDE;
PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
PROCEDURE CreateWnd;OVERRIDE;
PROCEDURE DestroyWnd;OVERRIDE;
PROCEDURE ParentNotification(VAR Msg:TMessage);OVERRIDE;
PROCEDURE ItemSelect(Index:LONGINT);VIRTUAL;
PROCEDURE ScanEvent(VAR Msg:TWMChar;VAR KeyCode:TKeyCode;RepeatCount:BYTE);OVERRIDE;
PROCEDURE MouseClick(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
PUBLIC
DESTRUCTOR Destroy;OVERRIDE;
FUNCTION Add(CONST Text:STRING;Data:POINTER;Bitmap:TBitmap):TListViewNode;
PUBLIC
PROPERTY NodeClass:TListViewNodeClass read FNodeClass write FNodeClass;
PROPERTY Nodes:TList read FNodes;
PROPERTY Items[Index:LONGINT]:TListViewNode read Get;default;
PROPERTY ItemCount:LONGINT read GetItemCount;
PROPERTY ItemIndex:LONGINT read GetItemIndex write SetItemIndex;
PROPERTY Selected[Index:LONGINT]:BOOLEAN read GetSelect write SetSelect;
PROPERTY XAlign;
PROPERTY XStretch;
PROPERTY YAlign;
PROPERTY YStretch;
PUBLISHED
PROPERTY Align;
PROPERTY Color;
PROPERTY BitmapSize:TSize read FBitmapSize write FBitmapSize;
PROPERTY BorderStyle:TBorderStyle read FBorderStyle write SetBorderStyle;
PROPERTY PenColor;
PROPERTY DragCursor;
PROPERTY DragMode;
PROPERTY Enabled;
PROPERTY Font;
PROPERTY MultipleSel:BOOLEAN read FMultipleSel write FMultipleSel;
PROPERTY ParentColor;
PROPERTY ParentPenColor;
PROPERTY ParentFont;
PROPERTY ParentShowHint;
{Rene}
PROPERTY PopupMenu;
PROPERTY ShowHint;
PROPERTY TabOrder;
PROPERTY TabStop;
PROPERTY Visible;
PROPERTY ZOrder;
PROPERTY OnCanDrag;
{Rene}
PROPERTY OnDblClick;
PROPERTY OnDragDrop;
PROPERTY OnDragOver;
PROPERTY OnEndDrag;
PROPERTY OnEnter;
PROPERTY OnExit;
PROPERTY OnFontChange;
PROPERTY OnItemSelect:TListViewItemSelectEvent read FOnItemSelect write FOnItemSelect;
PROPERTY OnMouseClick;
PROPERTY OnMouseDblClick;
PROPERTY OnMouseDown;
PROPERTY OnMouseMove;
PROPERTY OnMouseUp;
PROPERTY OnSetupShow;
PROPERTY OnStartDrag;
END;
FUNCTION InsertListView(Parent:TControl;Left,Bottom,Width,Height:LONGINT;Hint:STRING):TListView;
IMPLEMENTATION