The SDL Component Suite is an industry leading collection of components supporting scientific and engineering computing. Please visit the SDL Web site for more information....



Interface of SDL_Dendrogram

const
{$IFDEF PAIDVERS}
  SDLVersionInfo = 'dendrogram_r1200_full';
  IsLightEd = false;
{$ELSE}
  SDLVersionInfo = 'dendrogram_r1200_lighted';
  IsLightEd = true;
{$ENDIF}
  Release = 1200;


type
  ESDLDendrogramError = class(ESDLError);
  TMarkedObjType = (motNone, motBoldFoot, motTriangle);
  TDendroShowObjLblEvent = procedure (Sender: TObject; Obj: integer;  
                                 var Text: string; var Color: TColor) of object;
  TDendrogram = class (TCustomControl)
           private
             FFrameStyle     : TFrameStyle;                   { style of frame }
             FColorDendroBG  : TColor;        { color of dendrogram background }
             FColorDendro    : TColor;             { color of dendrogram lines }
             FColorLabelsBG  : TColor; { background color of dendrogram lables }
             FColorEmptyArea : TColor;         { color of empty area in corner }
             FColBlackLine   : TColor;              { colors to draw the frame }
             FColGrayLine    : TColor;                            { -"- }
             FColWhiteLine   : TColor;                            { -"- }
             FColorScheme    : TColorScheme;          { color scheme of frames }
             FClassColor     : array[0..255] of TColor;
             FClustDist      : TVector;
             FClustResult    : TIntMatrix;
             FCrossHair      : TCrossHair;
             FDendroCoord    : TVector;
             FDistMeasure    : TDistMode;
             FClustMeth      : TClusterMethod;
             FClassnum       : TIntVector;
             FFlexAlpha      : double;
             FScaleDist_k    : double;
             FScaleDist_d    : double;
             FScaleObj_k     : double;
             FScaleObj_d     : double;
             FMarkedObj      : integer;
             FMarkedObjType  : TMarkedObjType;
             FObjLow         : double;
             FObjHigh        : double;
             FDistLow        : double;
             FDistHigh       : double;
             FObjMargin      : integer;
             FClPixelCoords  : TMatrix;{ pixel coordinates of dendrogram lines }
             FZoomState      : TZoomState;
             FMouseAction    : TMouseActMode;
             FIsTTFont       : boolean;
             FForceStaggLbls : boolean;
             FMarginIsMoveable: boolean;
             FOnZoomPan      : TZoomPanEvent;
             FOnProgress     : TOnPercentDoneEvent;
             FOnCalcDist     : TOnCalcDistanceEvent;
             FOnCrossHMove   : TNotifyEvent;
             FOnDendroDone   : TNotifyEvent;
             FOnDendroBegin  : TNotifyEvent;
             FOnShowObjLbl   : TDendroShowObjLblEvent;
             FLButWasDown    : boolean;            { global identifier to track
                                                  panning by left mouse button }
             FMousePosObj    : double;
             FMousePosDist   : double;
             FWindAnchorX    : integer;
             FWindAnchorY    : integer;
             FWindOldCornX   : integer;
             FWindOldCornY   : integer;
             FMAnchorScrX    : integer;  { anchor mouse pos. on TRChart canvas }
             FMAnchorScrY    : integer;
             FMAnchorObjLo   : double;
             FMAnchorDistLo  : double;
             FMAnchorObjHi   : double;
             FMAnchorDistHi  : double;
             FAnchorScaleDist_d: double;
             FAnchorScaleObj_d : double;
             FHorzScaleHgt   : integer;
             FVertScaleWid   : integer;
             FOrientation    : TDirection;
             FGrafBmp        : TBitMap;
             FScale          : TScale;
             FShowClassCols  : boolean;
             FSuppressPaint  : boolean;       { TRUE: suppress all paint calls }
             FSuppressCA     : boolean;
             FIsProcessing   : boolean;
             procedure SetColorSclBg (Value: TColor);
             procedure SetColorScl (Value: TColor);
             function  GetColorSclBg: TColor;
             function  GetColorScl: TColor;
             function  GetCrossHair: TCrossHair;
             function  GetClassColor(cl: integer): TColor;
             procedure SetClassColor (cl: integer; color: TColor);
             procedure SetShowClassCols (value: boolean);
             procedure SetCrossHair (ch: TCrossHair);
             procedure SetColorDendroBg (Value: TColor);
             procedure SetColorDendro (Value: TColor);
             procedure SetColorScheme (Value: TColorScheme);
             procedure SetColorLabelsBg (Value: TColor);
             procedure SetColorEmptyArea (Value: TColor);
             procedure SetOrientation (Value: TDirection);
             procedure SetDistMeasure (Value: TDistMode);
             procedure SetFlexAlpha (Value: double);
             procedure SetFrameStyle (value: TFrameStyle);
             procedure SetForceStaggLbls (value: boolean);
             procedure SetMarginIsMoveable (value: boolean);
             procedure SetHorzScaleHgt (value: integer);
             procedure SetVertScaleWid (value: integer);
             procedure SetMarkedObj (value: integer);
             procedure SetMarkedObjType (value: TMarkedObjType);
             procedure SetObjMargin (value: integer);
             procedure SetObjLow (value: double);
             procedure SetObjHigh (value: double);
             procedure SetDistLow (value: double);
             procedure SetDistHigh (value: double);
             procedure SetClusterMethod (value: TClusterMethod);
             procedure SetSuppressPaint (supp: boolean);
             procedure SetSuppressCA (supp: boolean);
             function GetDecPlaces: integer;
             procedure SetDecPlaces (value: integer);
             function PosOnDendroArea (X, Y: integer): boolean;
           protected
             procedure CreateWnd; override;
             procedure FontHasChanged (Sender: TObject);
             procedure MouseMove (Shift: TShiftState; X,Y: integer); override;
             procedure Paint; override;
             procedure ConstructDendrogram (cv: TCanvas);
             function RevScaleDist (DistPix: integer): double;
             function RevScaleObj (ObjPix: integer): double;
             function ScaleObj (Obj: double): integer;
             function ScaleDist (Dist: double): integer;
             procedure AdjustScalePars;
             procedure MouseDown (Button: TMouseButton; Shift: TShiftState;
                          X, Y: Integer); override;
             procedure MouseUp (Button: TMouseButton; Shift: TShiftState;
                          X, Y: Integer); override;
             procedure DoZoomPanEvent;
             procedure DoClusterAnalysis;
             procedure DoOnPercentDone (Sender: TObject; PercDone: double);
             procedure SetClassSubTreeIntern (ClustIx, ClassNr: integer);
             procedure StyleChanged (Sender: TObject);
             procedure DataChanged (Sender: TObject);
             procedure Loaded; override;
           public
             Data: TDataTable;  // public access to data table
             procedure AutoRange;
             constructor Create(AOwner: TComponent); override;
             destructor  Destroy; override;
             function CalcClasses (Threshold: double): boolean;
{$IFDEF DEVELOPVERS}
   {$I intf_dendrogram_futurevers.pas}
{$ENDIF}
             property  ClassColors[cl: integer]: TColor
                          read GetClassColor write SetClassColor;
             property ClustDist: TVector read FClustDist;
             property ClustResult: TIntMatrix read FClustResult;
             procedure CopyToClipboard (IncludeFrame: boolean);
             procedure CopyToBMP (FName: string; IncludeFrame: boolean);
             procedure CopyToBitmap (ABitmap: TBitmap; IncludeFrame: boolean);
             function  FindObject (ObjCoord: integer): integer;
             function  FindClusterAtPos (X,Y: integer): integer;
             property  IsProcessing: boolean read FIsProcessing;
             property  MarkedObject: integer read FMarkedObj write SetMarkedObj;
             property  MarkedObjType: TMarkedObjType
                          read FMarkedObjType write SetMarkedObjType;
             property  MousePosObj: double read FMousePosObj;
             property  MousePosDist: double read FMousePosDist;
             procedure RetrieveClusterClasses;
             procedure SetBounds (ALeft, ATop, AWidth, AHeight: Integer); override;
             procedure SetClassSubTree (ClustIx, ClassNr: integer);
             procedure SetRange (ObjLow, ObjHigh, DistLow, DistHigh: double);
             procedure StoreProtocol (FName: string); overload;
             property  SuppressPaint: boolean
                          read FSuppressPaint write SetSuppressPaint;
             property  SuppressClustAnal: boolean
                          read FSuppressCA write SetSuppressCA;
             property  ZoomState: TZoomState read FZoomState;
           published
             property Align;
             property Anchors;
             property ClusterMethod: TClusterMethod
                         read FClustMeth write SetClusterMethod;
             property ColorScale: TColor read GetColorScl write SetColorScl;
             property ColorScaleBackGnd: TColor
                         read GetCOlorSclBG write SetColorSclBg;
             property ColorDendrogram: TColor
                         read FColorDendro write SetColorDendro;
             property ColorLabelsBG: TColor
                         read FColorLabelsBG write SetColorLabelsBg;
             property ColorEmptyArea: TColor
                         read FColorEmptyArea write SetColorEmptyArea;
             property ColorDendrogramBackGnd: TColor
                         read FColorDendroBG write SetColorDendroBg;
             property ColorScheme: TColorScheme
                         read FColorScheme write SetColorScheme;
             property CrossHair: TCrossHair read GetCrossHair write SetCrossHair;
             property DecPlaces: integer read GetDecPlaces write SetDecPlaces;
             property DistHigh: double read FDistHigh write SetDistHigh;
             property DistLow: double read FDistLow write SetDistLow;
             property DistMeasure: TDistMode
                         read FDistMeasure write SetDistMeasure;
             property Enabled;
             property FlexAlpha: double read FFlexAlpha write SetFlexAlpha;
             property Font;
             property ForceStaggeredLabels: boolean
                         read FForceStaggLbls write SetForceStaggLbls;
             property FrameStyle: TFrameStyle
                         read FFrameStyle write SetFrameStyle;
             property Margin: integer read FObjMargin write SetObjMargin;
             property MarginIsMoveable: boolean
                         read FMarginIsMoveable write SetMarginIsMoveable;
             property MouseAction: TMouseActMode
                         read FMouseAction write FMouseAction;
             property ObjHigh: double read FObjHigh write SetObjHigh;
             property ObjLow: double read FObjLow write SetObjLow;
             property Orientation: TDirection
                         read FOrientation write SetOrientation;
             property ParentFont;
             property ParentShowHint;
             property PopupMenu;
             property ScaleWidth: integer
                         read FHorzScaleHgt write SetHorzScaleHgt;
             property ScaleHeight: integer
                         read FVertScaleWid write SetVertScaleWid;
             property ShowClassColors: boolean
                         read FShowClassCols write SetShowClassCols;
             property ShowHint;
{$IFDEF GE_LEV17}
             property StyleElements;
{$ENDIF}
             property Visible;
             property OnZoomPan: TZoomPanEvent read FOnZoomPan write FOnZoomPan;
             property OnClick;
             property OnDblClick;
             property OnMouseMove;
             property OnMouseDown;
             property OnMouseUp;
             property OnBeforeShowObjLabel: TDendroShowObjLblEvent
                         read FOnShowObjLbl write FOnShowObjLbl;
             property OnCrossHairMove: TNotifyEvent
                         read FOnCrossHMove write FOnCrossHMove;
             property OnDendroBegin: TNotifyEvent
                         read FOnDendroBegin write FOnDendroBegin;
             property OnDendroDone: TNotifyEvent
                         read FOnDendroDone write FOnDendroDone;
             property OnProgress: TOnPercentDoneEvent
                         read FOnProgress  write FOnProgress;
             property OnCalcDistance: TOnCalcDistanceEvent
                         read FOnCalcDist write FOnCalcDist;
           end;





Last Update: 2023-Feb-06