home *** CD-ROM | disk | FTP | other *** search
/ PC Format Collection 48 / SENT14D.ISO / tech / delphi / disk15 / inttab.pak / TABNOTBK.INT < prev    next >
Encoding:
Text File  |  1995-08-24  |  3.2 KB  |  92 lines

  1. {*******************************************************}
  2. {                                                       }
  3. {       Delphi Visual Component Library                 }
  4. {                                                       }
  5. {       Copyright (c) 1995 Borland International        }
  6. {                                                       }
  7. {*******************************************************}
  8.  
  9. { This unit defines the TTabbedNotebook Component. }
  10.  
  11. unit TabNotBk;
  12.  
  13. interface
  14.  
  15. uses WinTypes, WinProcs, Classes,  Stdctrls, Forms,
  16.   Messages, Graphics, Controls, Dsgnintf;
  17.  
  18. const
  19.   CM_TABFONTCHANGED = CM_BASE + 100;
  20.  
  21. type
  22.  
  23.   TPageChangeEvent = procedure(Sender: TObject; NewTab: Integer;
  24.     var AllowChange: Boolean) of object;
  25.  
  26.   { Class       : TTabPage
  27.     Description : This class implements the individual tab page behavior.
  28.                   Each instance of this class will hold controls to be
  29.                   displayed when it is the active page of a TTabbedNotebook
  30.                   component. }
  31.   TTabPage = class(TWinControl)
  32.   protected
  33.     procedure ReadState(Reader: TReader); override;
  34.     procedure WriteComponents(Writer: TWriter); override;
  35.   public
  36.     constructor Create(AOwner: TComponent); override;
  37.   published
  38.     property Caption;
  39.     property Height stored False;
  40.     property TabOrder stored False;
  41.     property Visible stored False;
  42.     property Width stored False;
  43.     property Enabled stored False;
  44.   end;
  45.  
  46.   { Class       : TTabbedNotebook
  47.     Description : This class implements Tabbed notebook component.
  48.                   It holds a collection of TTabPages onto which
  49.                   users can drop controls.  It uses MS-Word style
  50.                   tab buttons to allow the user to control which
  51.                   page is currently active. }
  52.   TTabbedNotebook = class(TCustomControl)
  53.   protected
  54.     procedure SetPageIndex(Value: Integer);
  55.     procedure CMTabFontChanged(var Message: TMessage); message CM_TABFONTCHANGED;
  56.     procedure Loaded; override;
  57.     procedure ReadState(Reader: TReader); override;
  58.     procedure WriteComponents(Writer: TWriter); override;
  59.     procedure Paint; override;
  60.     procedure AlignControls(AControl: TControl; var Rect: TRect); override;
  61.     procedure Click; dynamic;
  62.     procedure CreateParams(var Params: TCreateParams); override;
  63.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  64.     procedure ShowControl(AControl: TControl); override;
  65.   public
  66.     constructor Create(AOwner: TComponent); override;
  67.     destructor  Destroy; override;
  68.     function GetIndexForPage(const PageName: String): Integer;
  69.     property TopFont: TFont;
  70.     procedure TabFontChanged(Sender: TObject);
  71.   published
  72.     property ActivePage: string;
  73.     property Align;
  74.     property Enabled;
  75.     property PageIndex: Integer default 0;
  76.     property Pages: TStrings;
  77.     property Font;
  78.     property TabsPerRow: Integer default 3;
  79.     property TabFont: TFont;
  80.     property ParentShowHint;
  81.     property ShowHint;
  82.     property TabOrder;
  83.     property TabStop default True;
  84.     property Visible;
  85.     property OnClick: TNotifyEvent;
  86.     property OnChange: TPageChangeEvent;
  87.     property OnEnter;
  88.     property OnExit;
  89.   end;
  90.  
  91. implementation
  92.