home *** CD-ROM | disk | FTP | other *** search
-
- {*******************************************************}
- { }
- { Delphi Visual Component Library }
- { }
- { Copyright (c) 1995,96 Borland International }
- { }
- {*******************************************************}
-
- {****************************************************************************}
- { }
- { 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;
-
- 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 Paint; override;
- procedure DrawTab(TabCanvas: TCanvas; R: TRect; Index: Integer;
- Selected: Boolean); virtual;
- function CanChange(NewIndex: Integer): Boolean;
- procedure GetChildren(Proc: TGetChildProc); 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 AutoScroll: Boolean default True;
- property BackgroundColor: TColor default clBtnFace;
- property DitherBackground: Boolean default True;
- 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 OnEndDrag;
- property OnEnter;
- property OnExit;
- property OnMouseDown;
- property OnMouseMove;
- property OnMouseUp;
- property OnMeasureTab: TMeasureTabEvent;
- property OnStartDrag;
- end;
-
- implementation
-