home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Plus! (NZ) 2001 June
/
HDC50.iso
/
Runimage
/
Delphi50
/
Doc
/
TABS.INT
< prev
next >
Wrap
Text File
|
1999-08-11
|
5KB
|
140 lines
{*******************************************************}
{ }
{ Borland Delphi Visual Component Library }
{ }
{ Copyright (c) 1995,99 Inprise Corporation }
{ }
{*******************************************************}
{****************************************************************************}
{ }
{ Limitation on Distribution of Programs Created with this Source Code File: }
{ ========================================================================== }
{ }
{ For distribution of an application which you create with this Source }
{ Code File, your application may not be a general-purpose, interactive }
{ spreadsheet program, or a substitute for or generally competitive }
{ with Quattro Pro. }
{ }
{****************************************************************************}
{ Implements tab control }
unit Tabs;
{$T-,H+,X+}
interface
uses Windows, Classes, Graphics, Forms, Controls, Messages;
type
TScrollBtn = (sbLeft, sbRight);
TScroller = class(TCustomControl)
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Paint; override;
published
property OnClick: TNotifyEvent;
property Min: Longint default 0;
property Max: Longint default 0;
property Position: Longint default 0;
property Change: Integer default 1;
end;
TTabSet = class;
TTabList = class(TStringList)
public
procedure Insert(Index: Integer; const S: string); override;
procedure Delete(Index: Integer); override;
function Add(const S: string): Integer; override;
procedure Put(Index: Integer; const S: string); override;
procedure Clear; override;
procedure AddStrings(Strings: TStrings); override;
end;
{ eash TEdgeType is made up of one or two of these parts }
TEdgePart = (epSelectedLeft, epUnselectedLeft, epSelectedRight,
epUnselectedRight);
{ represents the intersection between two tabs, or the edge of a tab }
TEdgeType = (etNone, etFirstIsSel, etFirstNotSel, etLastIsSel, etLastNotSel,
etNotSelToSel, etSelToNotSel, etNotSelToNotSel);
TTabStyle = (tsStandard, tsOwnerDraw);
TMeasureTabEvent = procedure(Sender: TObject; Index: Integer;
var TabWidth: Integer) of object;
TDrawTabEvent = procedure(Sender: TObject; TabCanvas: TCanvas; R: TRect;
Index: Integer; Selected: Boolean) of object;
TTabChangeEvent = procedure(Sender: TObject; NewTab: Integer;
var AllowChange: Boolean) of object;
TTabSet = class(TCustomControl)
protected
procedure CreateParams(var Params: TCreateParams); override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure Paint; override;
procedure DrawTab(TabCanvas: TCanvas; R: TRect; Index: Integer;
Selected: Boolean); virtual;
function CanChange(NewIndex: Integer): Boolean;
procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
procedure MeasureTab(Index: Integer; var TabWidth: Integer); virtual;
procedure DefineProperties(Filer: TFiler); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function ItemAtPos(Pos: TPoint): Integer;
function ItemRect(Item: Integer): TRect;
procedure SelectNext(Direction: Boolean);
property Canvas;
property FirstIndex: Integer default 0;
published
property Align;
property Anchors;
property AutoScroll: Boolean default True;
property BackgroundColor: TColor default clBtnFace;
property Constraints;
property DitherBackground: Boolean default True;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property EndMargin: Integer default 5;
property Font;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property StartMargin: Integer default 5;
property SelectedColor: TColor default clBtnFace;
property Style: TTabStyle default tsStandard;
property TabHeight: Integer default 20;
property Tabs: TStrings;
property TabIndex: Integer default -1;
property UnselectedColor: TColor default clWindow;
property Visible;
property VisibleTabs: Integer;
property OnClick;
property OnChange: TTabChangeEvent;
property OnDragDrop;
property OnDragOver;
property OnDrawTab: TDrawTabEvent;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnMeasureTab: TMeasureTabEvent;
property OnStartDock;
property OnStartDrag;
end;
implementation