Class TGlNestingInfo (unit Nestinfo)

Inherits from

TComponent

Design time component that shows the nesting of controls of the form on which it is placed. Special support for panels, splitters and the RxLib splitter. Facilities for runtime usage (see Refresh). Usage : Place on form and click on 'Nesting' in the object inspector. Output can be modified by changing various properties of the component in the object inspector.

Constructors


constructor Create(AOwner: TComponent);



Functions

destructor destroy;

with

procedure refresh;

For runtime use of component.

function createDepthedString(s : string; i : integer):string;


function createString(depth : integer;siblingString,name,alignString, typeString: string):string;

The format of the output is determined by this function

function getControlInfo(f : Tform; s : Tstringlist):Tstringlist;


function getIndent:integer;


function getPanelInfo(f : Tform; s : Tstringlist):Tstringlist;


function hasPanels(p : Twincontrol):boolean;


function isSplitter( s : Tcontrol):boolean;


procedure processControl(p : TWinControl;strlist : tstringlist; depth : integer);

recursive function

procedure processPanel(p : twincontrol;strlist : tstringlist; depth : integer);

recursive function

procedure processWincontrol(p : twincontrol;strlist : tstringlist; depth : integer);

for non-TcustomPanel based controls derived from Twincontrol

function readStrings:Tstringlist;


procedure setIndent(i : integer);


procedure setOptions(o : TglNiniOptions);

For delphi3 Tsplitter

procedure setstrings(s : Tstringlist);

classname, instead of name, due to D1 bug

Properties

property Indent : integer

Sets the indent used for representation of the nesting.

property Nesting : Tstringlist

Click on this property in the object inspector to get nesting info.

property Options : TglNiniOptions

Various options that affect output: niType, include type info niAlignment, include alignment info niSiblings, numbers controls in list to indicate sibling relationship.

property Splitters : TNiSplitterOptions

Include or exclude splitters.

property View : TglNiView

Allows display of panel controls only.

property Form : TForm

The default form processed is the form on which the component is placed.

Events

Variables

FForm : TForm;


Findent : string;


Foptions : TglNiniOptions;


FsplitterOpts : TNiSplitterOptions;


FstrList : Tstringlist;


FView : TglNiView;


siblingNumber : integer;



Constructors


constructor Create(AOwner: TComponent);


Functions


destructor destroy;

with


procedure refresh;

For runtime use of component. Re-indexes controls ready for output via Nesting property


function createDepthedString(s : string; i : integer):string;


function createString(depth : integer;siblingString,name,alignString, typeString: string):string;

The format of the output is determined by this function


function getControlInfo(f : Tform; s : Tstringlist):Tstringlist;


function getIndent:integer;


function getPanelInfo(f : Tform; s : Tstringlist):Tstringlist;


function hasPanels(p : Twincontrol):boolean;


function isSplitter( s : Tcontrol):boolean;


procedure processControl(p : TWinControl;strlist : tstringlist; depth : integer);

recursive function


procedure processPanel(p : twincontrol;strlist : tstringlist; depth : integer);

recursive function


procedure processWincontrol(p : twincontrol;strlist : tstringlist; depth : integer);

for non-TcustomPanel based controls derived from Twincontrol


function readStrings:Tstringlist;


procedure setIndent(i : integer);


procedure setOptions(o : TglNiniOptions);

For delphi3 Tsplitter


procedure setstrings(s : Tstringlist);

classname, instead of name, due to D1 bug


Properties


property Indent : integer

Sets the indent used for representation of the nesting.


property Nesting : Tstringlist

Click on this property in the object inspector to get nesting info.


property Options : TglNiniOptions

Various options that affect output: niType, include type info niAlignment, include alignment info niSiblings, numbers controls in list to indicate sibling relationship. convenient in case of large numbers of controls niRxInfo, includes extra RxSplitter property info (controlFirst/ControlSecond).


property Splitters : TNiSplitterOptions

Include or exclude splitters. Splitters are detected by type comparison in the case of RxSPlitter and the Delphi3 Splitter control, or by looking for the string 'split' in the type name. you will need to switch this property on if a control being used is not a splitter but includes the string 'split' in its type name


property View : TglNiView

Allows display of panel controls only. Includes all controls derived from TCustomPanel (which includes some third party splitters). If niPanelling is chosen then non-panel controls that contain sub-panels are still displayed but within angle brackets.


property Form : TForm

The default form processed is the form on which the component is placed. Use this property at runtime to get nesting info about another form. Useful for documenting projects. Use with Refresh.


Events


Variables


FForm : TForm;


Findent : string;


Foptions : TglNiniOptions;


FsplitterOpts : TNiSplitterOptions;


FstrList : Tstringlist;


FView : TglNiView;


siblingNumber : integer;