Class TAdvSplitter (unit AdvSplitter)

Inherits from

TCustomControl

Constructors


constructor Create(AOwner: TComponent);



Functions

procedure Center;

============== TAdvSplitter =================================

destructor Destroy;


procedure SwapPanes;


procedure CreateParams(var params: TCreateParams);

VCL and Windows Messages procedures

procedure CreateWnd;


function GetChildOwner : TComponent;


procedure GetChildren(Proc: TGetChildProc; Root: TComponent);


procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X,Y: Integer);


procedure MouseMove(Shift: TShiftState; X,Y: Integer);


procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X,Y: Integer);


procedure Paint;


procedure ReadState(Reader: TReader);

if both panes are hidden, then draw the client rect

procedure CheckPosBounds(value: integer);


procedure CMCtl3DChanged(var msg: TMessage);


procedure CMDesignHitTest(var msg: TCMDesignHitTest);


procedure DoPaneResize(sender: TObject);

change position according to percentage of new dimensions

procedure DrawSplitRect(X,Y: integer);


function GetPane(index: Integer) : TAdvPane;

internal procedures

procedure InvalidateSplitRect;


procedure InvertSplitterRect(R: TRect);

FPos = new position

procedure Resize;


procedure SetActivePane(index: integer);


procedure SetAutoUpdate(value: Boolean);


procedure SetBorderStyle(value: TBorderStyle);


procedure SetOrientation(value: TSplitterOrientation);


procedure SetPosition(value: integer);


procedure SetSplitterColor(value: TColor);


procedure SetThickness(value: integer);


procedure UpdatePanes;

notify the designer of the change

procedure WMEraseBkGnd(var msg: TWMEraseBkGnd);


procedure WMParentNotify(var msg:TWMParentNotify);

Only Change cursor when Both Panes are visible and when we are over the Splitter Rect

procedure WMSetCursor(var msg: TWMSetCursor);

record proportions

procedure WMSize(var msg: TWMSize);

Dont Erase BackGround

Properties

property Align :

inherited properties

property AllowResize : Boolean

properties

property AutoUpdate : Boolean


property BorderStyle : TBorderStyle


property Color :


property Ctl3D :


property Enabled :


property Orientation : TSplitterOrientation


property Pane1Setting : TAdvPaneSetting


property Pane2Setting : TAdvPaneSetting


property ParentCtl3D :


property ParentShowHint :


property Position : Integer


property ProportionalResize : boolean


property ShowHint :


property SplitterColor : TColor


property SplitterStyle : TSplitterStyle


property Thickness : Integer


property Visible :


property Pane : TAdvPane


Events

event OnPaneResize : TNotifyEvent

events

event OnResize : TNotifyEvent


Variables

FAllowResize : Boolean;


FAutoUpdate : Boolean;


FBorderStyle : TBorderStyle;


FCanResize : Boolean;


FCheckeredBrush : HBRUSH;


FOnPaneResize : TNotifyEvent;


FOnResize : TNotifyEvent;


FOrientation : TSplitterOrientation;


FPane : array[0..1] of TAdvPane;


FPos : TPoint;


FPosition : Integer;


FPosPercent : real;


FProportionalResize : boolean;


FSetting1 : TAdvPaneSetting;


FSetting2 : TAdvPaneSetting;


FSplitterColor : TColor;


FSplitterStyle : TSplitterStyle;


FThickness : Integer;



Constructors


constructor Create(AOwner: TComponent);


Functions


procedure Center;

============== TAdvSplitter =================================


destructor Destroy;


procedure SwapPanes;


procedure CreateParams(var params: TCreateParams);

VCL and Windows Messages procedures


procedure CreateWnd;


function GetChildOwner : TComponent;


procedure GetChildren(Proc: TGetChildProc; Root: TComponent);


procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X,Y: Integer);


procedure MouseMove(Shift: TShiftState; X,Y: Integer);


procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X,Y: Integer);


procedure Paint;


procedure ReadState(Reader: TReader);

if both panes are hidden, then draw the client rect


procedure CheckPosBounds(value: integer);


procedure CMCtl3DChanged(var msg: TMessage);


procedure CMDesignHitTest(var msg: TCMDesignHitTest);


procedure DoPaneResize(sender: TObject);

change position according to percentage of new dimensions


procedure DrawSplitRect(X,Y: integer);


function GetPane(index: Integer) : TAdvPane;

internal procedures


procedure InvalidateSplitRect;


procedure InvertSplitterRect(R: TRect);

FPos = new position


procedure Resize;


procedure SetActivePane(index: integer);


procedure SetAutoUpdate(value: Boolean);


procedure SetBorderStyle(value: TBorderStyle);


procedure SetOrientation(value: TSplitterOrientation);


procedure SetPosition(value: integer);


procedure SetSplitterColor(value: TColor);


procedure SetThickness(value: integer);


procedure UpdatePanes;

notify the designer of the change


procedure WMEraseBkGnd(var msg: TWMEraseBkGnd);


procedure WMParentNotify(var msg:TWMParentNotify);

Only Change cursor when Both Panes are visible and when we are over the Splitter Rect


procedure WMSetCursor(var msg: TWMSetCursor);

record proportions


procedure WMSize(var msg: TWMSize);

Dont Erase BackGround


Properties


property Align :

inherited properties


property AllowResize : Boolean

properties


property AutoUpdate : Boolean


property BorderStyle : TBorderStyle


property Color :


property Ctl3D :


property Enabled :


property Orientation : TSplitterOrientation


property Pane1Setting : TAdvPaneSetting


property Pane2Setting : TAdvPaneSetting


property ParentCtl3D :


property ParentShowHint :


property Position : Integer


property ProportionalResize : boolean


property ShowHint :


property SplitterColor : TColor


property SplitterStyle : TSplitterStyle


property Thickness : Integer


property Visible :


property Pane : TAdvPane


Events


event OnPaneResize : TNotifyEvent

events


event OnResize : TNotifyEvent


Variables


FAllowResize : Boolean;


FAutoUpdate : Boolean;


FBorderStyle : TBorderStyle;


FCanResize : Boolean;


FCheckeredBrush : HBRUSH;


FOnPaneResize : TNotifyEvent;


FOnResize : TNotifyEvent;


FOrientation : TSplitterOrientation;


FPane : array[0..1] of TAdvPane;


FPos : TPoint;


FPosition : Integer;


FPosPercent : real;


FProportionalResize : boolean;


FSetting1 : TAdvPaneSetting;


FSetting2 : TAdvPaneSetting;


FSplitterColor : TColor;


FSplitterStyle : TSplitterStyle;


FThickness : Integer;