const
defLRim = 50; // default left rim in component CHART
defRRim = 10; // default right rim in component CHART
defTRim = 16; // default top rim in component CHART
defBRim = 32; // default bottom rim in component CHART
defShadowWidth = 0; // default width of shadow
defPenStyle = psSolid; // default pen style
defDataCol = clblack; // default data color
defChartFrameCol = clBlack; // default chart frame color
defFillCol = clSilver; // default fill color
defChartCol = clWhite; // default chart background color
defWindCol = clBtnFace; // default window background color
defGridCol = clBlack; // default grid color
defLineWid = 1; // default line width
defRCHeight = 200; // default height
defRCWidth = 280; // default width
MinRCWidth = 80; // minimum width of RChart control
MinRCHeight = 20; // minimum height of RChart control
MaxTickPos = 50; // maximum number of synchronized grid lines
MaxZoomStack = 16; // depth of zoom stack
MaxCrossH = 4; // number of crosshairs
MAXTXTLBL = 50; // number of text labels
MaxDataUsers = 4; // maximum number of data shares
MAXPPA = 200; // size of polyline array
MAXLONGTEXTS = 50; // maximum number of supported long texts
MAXSHORTTXTLENG = 15; // max. length of short texts
ITP_ELEMTYPE = $00000001; // constants to select which parameters are to be
ITP_COORDS = $00000002; // returned by the function ItemDescription
ITP_COLORS = $00000004;
ITP_TAGS = $00000008;
ITP_CLASSES = $00000010;
ITP_fULL = $ffffffff;
{$IFDEF PAIDVERS}
SDLVersionInfo = 'rchart_r1210_full'; { version info }
IsLightEd = false;
{$ELSE}
SDLVersionInfo = 'rchart_r1210_lighted';
IsLightEd = true;
{$ENDIF}
Release = 1210;
type
ESDLRChartError = class(ESDLError); { exception type to indicate errors }
TLayerSet = set of 1..MAXNUMRCLAYERS;
TCaptionAnchorHoriz = (cahControlLeft, cahChartLeft, cahChartCenter,
cahChartRight, cahControlRight);
TCaptionAnchorVert = (cavControlTop, cavChartTop, cavChartCenter,
cavChartBottom, cavControlBottom);
TBGAreaMode = (bamNone, bamLeft, bamRight, bamTop, bamBottom,
bamVStripe, bamHStripe, bamRect, bamRectInv,
bamVStripeInv, bamHStripeInv);
TContourPlotMode = (cpmDots, cpmMonoDots, cpmColorSurface,
cpmColorSurfNoIp, cpmColorSurfNoIpTransp);
TEstimateZValEvent = procedure (Sender: TObject; x, y: double;
pivx, pivy: integer; var z: double; var Mask: byte) of object;
{$IFDEF GE_LEV29}
[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidWin64x)]
{$ENDIF}
TBakGndImg = class (TPersistent) { background bitmap }
private
FName : string; { name of bitmap file to load }
FOnChange : TNotifyEvent;
FIncldPath : boolean; { if TRUE, include path info }
FFillMode : TBkgFill; { fill of background image }
FBGAreaMode : TBgAreaMode; { background area mode }
FBGAreaColor : TColor; { background area color }
FBGAreaLeft : double; { background area coordinates }
FBGAreaRight : double;
FBGAreaTop : double;
FBGAreaBottom : double;
procedure ResetComp;
procedure SetName (fn: string);
procedure SetIncldPath (x: boolean);
procedure SetFillMode (x: TBkgFill);
procedure SetBGAreaColor (c: TColor);
procedure SetBGAreaMode (m: TBgAreaMode);
procedure SetBGAreaLeft (coords: double);
procedure SetBGAreaRight (coords: double);
procedure SetBGAreaTop (coords: double);
procedure SetBGAreaBottom (coords: double);
protected
procedure AssignTo (Dest: TPersistent); override;
public
constructor Create(AOwner: TComponent);
destructor Destroy; override;
procedure Changed;
procedure Assign(Source: TPersistent); override;
property OnChange: TNotifyEvent read FOnChange write FOnChange;
published
property Name: string read FName write SetName;
property IncludePath: boolean read FIncldPath write SetIncldPath;
property FillMode: TBkgFill read FFillMode write SetFillMode;
property AreaMode: TBgAreaMode
read FBgAreaMode write SetBgAreaMode;
property AreaColor: TColor
read FBGAreaColor write SetBgAreaColor;
property AreaLeft: double read FBGAreaLeft write SetBgAreaLeft;
property AreaRight: double
read FBGAreaRight write SetBgAreaRight;
property AreaTop: double read FBGAreaTop write SetBgAreaTop;
property AreaBottom: double
read FBGAreaBottom write SetBgAreaBottom;
end;
{$IFDEF GE_LEV29}
[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidWin64x)]
{$ENDIF}
TJointLayers = class(TPersistent)
private
FMasterLayerX : array [1..MAXNUMRCLAYERS] of integer;
FMasterLayerY : array [1..MAXNUMRCLAYERS] of integer;
FOnChange : TNotifyEvent;
FOwner : TComponent;
function GetControlledLayerX (Index: Integer): integer;
function GetControlledLayerY (Index: Integer): integer;
procedure SetControlledLayerX (Index: Integer; Value: integer);
procedure SetControlledLayerY (Index: Integer; Value: integer);
protected
procedure Changed;
procedure AssignTo(Dest: TPersistent); override;
property OnChange: TNotifyEvent read FOnChange write FOnChange;
public
constructor Create(AOwner: TComponent);
destructor Destroy; override;
procedure Assign(Source: TPersistent);
procedure ResetComp;
published
property L01xControlledBy: integer index 1
read GetControlledLayerX write SetControlledLayerX;
property L01yControlledBy: integer index 1
read GetControlledLayerY write SetControlledLayerY;
property L02xControlledBy: integer index 2
read GetControlledLayerX write SetControlledLayerX;
property L02yControlledBy: integer index 2
read GetControlledLayerY write SetControlledLayerY;
{$IFDEF PAIDVERS}
property L03xControlledBy: integer index 3
read GetControlledLayerX write SetControlledLayerX;
property L03yControlledBy: integer index 3
read GetControlledLayerY write SetControlledLayerY;
property L04xControlledBy: integer index 4
read GetControlledLayerX write SetControlledLayerX;
property L04yControlledBy: integer index 4
read GetControlledLayerY write SetControlledLayerY;
property L05xControlledBy: integer index 5
read GetControlledLayerX write SetControlledLayerX;
property L05yControlledBy: integer index 5
read GetControlledLayerY write SetControlledLayerY;
property L06xControlledBy: integer index 6
read GetControlledLayerX write SetControlledLayerX;
property L06yControlledBy: integer index 6
read GetControlledLayerY write SetControlledLayerY;
property L07xControlledBy: integer index 7
read GetControlledLayerX write SetControlledLayerX;
property L07yControlledBy: integer index 7
read GetControlledLayerY write SetControlledLayerY;
property L08xControlledBy: integer index 8
read GetControlledLayerX write SetControlledLayerX;
property L08yControlledBy: integer index 8
read GetControlledLayerY write SetControlledLayerY;
property L09xControlledBy: integer index 9
read GetControlledLayerX write SetControlledLayerX;
property L09yControlledBy: integer index 9
read GetControlledLayerY write SetControlledLayerY;
property L10xControlledBy: integer index 10
read GetControlledLayerX write SetControlledLayerX;
property L10yControlledBy: integer index 10
read GetControlledLayerY write SetControlledLayerY;
property L11xControlledBy: integer index 11
read GetControlledLayerX write SetControlledLayerX;
property L11yControlledBy: integer index 11
read GetControlledLayerY write SetControlledLayerY;
property L12xControlledBy: integer index 12
read GetControlledLayerX write SetControlledLayerX;
property L12yControlledBy: integer index 12
read GetControlledLayerY write SetControlledLayerY;
property L13xControlledBy: integer index 13
read GetControlledLayerX write SetControlledLayerX;
property L13yControlledBy: integer index 13
read GetControlledLayerY write SetControlledLayerY;
property L14xControlledBy: integer index 14
read GetControlledLayerX write SetControlledLayerX;
property L14yControlledBy: integer index 14
read GetControlledLayerY write SetControlledLayerY;
property L15xControlledBy: integer index 15
read GetControlledLayerX write SetControlledLayerX;
property L15yControlledBy: integer index 15
read GetControlledLayerY write SetControlledLayerY;
property L16xControlledBy: integer index 16
read GetControlledLayerX write SetControlledLayerX;
property L16yControlledBy: integer index 16
read GetControlledLayerY write SetControlledLayerY;
{$ENDIF}
end;
{$IFDEF GE_LEV29}
[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidWin64x)]
{$ENDIF}
TScaleProps = class (TPersistent) // published properties of scales
private
FCaption : string;
FCaptionPosX : integer;
FCaptionPosY : integer;
FCaptAlign : TAlignment;
FCaptAnchor : TScaleUnitAnchor;
FColorScale : TColor;
FOnChange : TNotifyEvent;
FDTFormat : TDTLabel;
FDecPlaces : integer;
FLogAx : boolean;
FLabelType : TFigType;
FFont : TFont;
FMinTicks : integer;
FNotYetLoaded : boolean; { flag to prevent problems with
log. scales during component loading }
FRangeLow : double;
FRangeHigh : double;
FShortTicks : boolean;
FScaleInscript: string;
FScaleType : TScaleType;
FScalePosX : integer;
FScalePosY : integer;
FMinRngDiff : double; { minimum range of axis }
FMouseAction : TMouseActMode;
FUserTickText : string;
FVisible : boolean;
function GetScalePos: integer;
function GetScaleCenter: double;
procedure SetCaption (txt: string);
procedure SetCaptionPosX (x: integer);
procedure SetCaptionPosY (y: integer);
procedure SetCaptAlign (al: TAlignment);
procedure SetCaptAnchor (ca: TScaleUnitAnchor);
procedure SetColorScale (color: TColor);
procedure SetDTFormat (dtf: TDTLabel);
procedure SetDecPlaces (dp: integer);
procedure SetLogAx (logar: boolean);
procedure SetLabelType (lt: TFigType);
procedure SetMinTicks (nt: integer);
procedure SetMinRngDiff (minrng: double);
procedure SetScalePos (p: integer);
procedure SetRangeLow (rl: double);
procedure SetRangeHigh (rh: double);
procedure SetShortTicks (st: boolean);
procedure SetScaleInscript (scinsc: string);
procedure SetScaleType (sct: TScaleType);
procedure SetUserTickText (utt: string);
procedure SetVisible (vis: boolean);
procedure SetScaleFont (ft: TFont);
protected
procedure AssignTo (Dest: TPersistent); override;
procedure FontStyleChanged(Sender: TObject);
public
constructor Create;
destructor Destroy; override;
procedure Assign(Source: TPersistent); override;
procedure Changed;
property Center: double read GetScaleCenter;
procedure ResetComp;
property ScaleType: TScaleType
read FScaleType write SetScaleType;
published
property Caption: string read FCaption write SetCaption;
property CaptionPosX: integer
read FCaptionPosX write SetCaptionPosX;
property CaptionPosY: integer
read FCaptionPosY write SetCaptionPosY;
property CaptionAlignment: TAlignment
read FCaptAlign write SetCaptAlign;
property CaptionAnchor: TScaleUnitAnchor
read FCaptAnchor write SetCaptAnchor;
property ColorScale: TColor read FColorScale write SetColorScale;
property DateFormat: TDTLabel read FDTFormat write SetDTFormat;
property DecPlaces: integer read FDecPlaces write SetDecPlaces;
property Font: TFont read FFont write SetScaleFont;
property Logarithmic: boolean read FLogAx write SetLogAx;
property LabelType: TFigType read FLabelType write SetLabelType;
property MinTicks: integer read FMinTicks write SetMinTicks;
property MinRange: double read FMinRngDiff write SetMinRngDiff;
property MouseAction: TMouseActMode
read FMouseAction write FMouseAction;
property RangeLow: double read FRangeLow write SetRangeLow;
property RangeHigh: double read FRangeHigh write SetRangeHigh;
property ShortTicks: boolean
read FShortTicks write SetShortTicks;
property ScaleInscript: string
read FScaleInscript write SetScaleInscript;
property ScalePos: integer read GetScalePos write SetScalePos;
property UserTickText: string
read FUserTickText write SetUserTickText;
property Visible: boolean read FVisible write SetVisible;
property OnChange: TNotifyEvent read FOnChange write FOnChange;
end;
TScaleLocationHoriz = (slTop, slBottom);
{$IFDEF GE_LEV29}
[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidWin64x)]
{$ENDIF}
TScalePropsHoriz = class (TScaleProps)
private
FScaleLoc : TScaleLocationHoriz;
procedure ResetComp;
public
constructor Create;
procedure SetScaleLoc (value: TScaleLocationHoriz);
published
property ScaleLocation : TScaleLocationHoriz
read FScaleLoc write SetScaleLoc;
end;
TScaleLocationVert = (slLeft, slRight);
{$IFDEF GE_LEV29}
[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidWin64x)]
{$ENDIF}
TScalePropsVert = class (TScaleProps)
private
FScaleLoc : TScaleLocationVert;
procedure ResetComp;
public
constructor Create;
procedure SetScaleLoc (value: TScaleLocationVert);
published
property ScaleLocation : TScaleLocationVert
read FScaleLoc write SetScaleLoc;
end;
{$IFDEF GE_LEV29}
[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidWin64x)]
{$ENDIF}
TTextLabel = class (TCustomTextLabel)
private
public
published
property PosX;
property PosY;
property Layer;
property AttachToData;
property ColorBkg;
property ColorBorder;
property ColorShadow;
property ShadowDx;
property ShadowDy;
property Transparent;
property Alignment;
property VerticalAlignment;
property Font;
property Mode;
property Caption;
property Visible;
property OnChange;
end;
TCoordMode = (cmAllWorld, cmAllScreen, cmWorldMainScreenSec,
cmScreenMainWorldSec, cmXScreenYWorld, cmXWorldYScreen);
TrcItem = (tkNone, tkMarkAt, tkLine, tkLineto, tkRect, tkRectFrame,
tk3DBar, tkText, tkMoveTo, tkEllipse, tkEverything,
tkNotMoveTo, tkMoveRelPix, tkLineRelPix, tkArrow, tkDoubleArrow,
tkTextOfs, tkRectRelPix, tkMarkEBar, tkLineOffs, tkArc,
tkLineRelPixOrig, tkCursorVert, tkCursorHoriz, tkCross);
{ Attention: if the Itemtype is changed, the array
FItemCount should also be adjusted }
TrcChartItem = record
x, y : double; { coordinates of chart item }
x2, y2 : double; { other corner of rectangles
or halfaxes ha, hb of ellipses
or delta x/y for texts
or half lengths for crosses }
Color : TColor; { color of item }
FillColor : TColor; { fill color }
ShadowColor : TColor; { shadow color }
HiLightColor : TColor; { highlight color }
PenStyle : TPenStyle; { pen style used for this item }
Tag : longint; { user defined tag }
LWid : integer; { line width }
ItemClass : byte; { class number of item }
ItemKind : TrcItem; { kind of chart item }
Layer : integer; { coordinate system layer of item }
Transp : boolean; { transparency }
FrameStyle : TFrameStyle; { frame style }
Text : string[MAXSHORTTXTLENG]; { text }
Param1 : integer; { general parameter, used by:
tkLineOffs (x offset)
tkText (font size)
tkTextOfs (font size)
tkArc (first angle)
tk3Dbar (angle)
tkArrow (size of head)
tkDoubleArrow (size of heads)
tkMarkAt (font size of characters)
tkMarkEBar (font size of characters) }
Param2 : integer; { general parameter, used by:
tkText (background style)
tkTextOfs (background style)
tkLineOffs (y offset)
tkArc (second angle)
tk3Dbar (depth) }
Param3 : integer; { general parameter, used by:
tkText (alignment)
tkTextOfs (alignment)
tkMarkAt (mark type)
tkMarkEBar (mark type) }
CoordMode : TCoordMode;{ mode of coordinate interpretation }
end;
TRcItemContainer = array of TrcChartItem; // container of graphic elements
TLongTextArray = array[1..MAXLONGTEXTS] of string;
GridStyleType = (gsNone, gsPoints, gsVertLines, gsHorizLines, gsLines,
gsHorizDotLines, gsVertDotLines, gsDotLines);
{$IFDEF PAIDVERS}
TrcLayout = (rcl_X1Bottom_Y1Left, rcl_X1Bottom_Y2Left, rcl_X1Bottom_Y3Left,
rcl_X1Bottom_Y4Left, rcl_X1Bottom_Y2Both, rcl_X2Bottom_Y2Left,
rcl_X2Both_Y2Both);
{$ELSE}
TrcLayout = (rcl_X1Bottom_Y1Left, rcl_X1Bottom_Y2Left, rcl_X1Bottom_Y2Both,
rcl_X2Bottom_Y2Left, rcl_X2Both_Y2Both);
{$ENDIF}
TTextBkg = (tbClear, tbSolid);
{ event for mouse pos. in chart coords }
TMouseMoveInChartEvent = procedure (Sender: TObject; InChart: boolean;
Shift: TShiftState;
rMousePosX, rMousePosY: double) of object;
TBeforeRenderTextEvent = procedure (Sender: TObject; var Text: string;
Index: integer; IsAnnotation: boolean) of object;
TRenderEvent = procedure (Sender: TObject; Canvas: TCanvas;
Top, Left: integer) of object;
TBeforeCrossHMoveEvent = procedure (Sender: TObject;
WhichCrossHair: TCrossHair; dx, dy: integer;
var AllowMove: boolean) of object;
TCrossHairMoveEvent = procedure (Sender: TObject;
WhichCrossHair: TCrossHair) of object;
TTextLabelMoveEvent = procedure (Sender: TObject;
WhichTextLabel: TTextLabel) of object;
TBeforeRenderCItemEvent = procedure (Sender: TObject;
var ChartItem: TRcChartItem; Index: integer;
IsAnnotation: boolean) of object;
{$IFDEF GE_LEV29}
[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidWin64x)]
{$ENDIF}
TCustomRChart = class (TCustomControl)
private
{$IFDEF SDLDEBUG}
StartSystime : double;
{$ENDIF}
{ the following variables are used for drawing speed
optimization by avoiding unnecessary changes of colors }
FLastPenCol : TColor;
FLastPenStyle : TPenStyle;
FLastBrushCol : TColor;
FLastFontCol : TColor;
FLastLWidth : integer;
FInvalidDataBmp : boolean;
FPPa : array[1..MaxPPa] of TPoint;
FNumPPa : longint; // number of polyline segments
FLastMoveToX : longint;
FLastMoveToY : longint;
FPixMap : array of array of integer; { used to detect
points lying on top of each other }
FNumChartItems : longint;{no. of chart items in data container }
FNumAllocData : longint;{ number of allocated container cells }
FAllocSize : integer; { allocation size for data container }
FNumAnnoItems : longint;{no. of chart items in data container }
FNumAllocAnno : longint;{ number of allocated container cells }
FAnnoBelowChart : boolean; { TRUE: annotations below chart }
FAnnoTextOnTop : boolean; { TRUE: annotation texts are on top }
FAnnosVisible : boolean; { TRUE: annotation are displayed }
LButtonWasDown : boolean; { global identifier to track panning
by left mouse button }
FMAnchorScrX : array[1..MAXNUMRCLAYERS] of integer;
{ anchor mouse pos. on TRChart canvas }
FMAnchorScrY : array[1..MAXNUMRCLAYERS] of integer;
FMAnchorRcLoX : array[1..MAXNUMRCLAYERS] of double;
FMAnchorRcLoY : array[1..MAXNUMRCLAYERS] of double;
FMAnchorRcHiX : array[1..MAXNUMRCLAYERS] of double;
FMAnchorRcHiY : array[1..MAXNUMRCLAYERS] of double;
FNumLongTextsAnno: integer;
FLongTextsAnno : TLongTextArray;
FNumLongTextsData: integer;
FLongTextsData : TLongTextArray;
FAnnoMode : boolean; // TRUE: annotation mode is on
ColBakShadow : TColor;
ColBakShadowBgnd : TColor;
ColBakWindow : TColor;
ColBakChart : TColor;
ColBakFrame : TColor;
ColBakFont : TColor;
ColBakScalesX : array[1..MAXNUMRCLAYERS] of TColor;
ColBakScalesY : array[1..MAXNUMRCLAYERS] of TColor;
ColBakSclFontX : array[1..MAXNUMRCLAYERS] of TColor;
ColBakSclFontY : array[1..MAXNUMRCLAYERS] of TColor;
FZoomState : TZoomState;
FStdLayout : TRcLayout;
FPanGridDx : double;
FPanGridDy : double;
FPanGridOffsX : double;
FPanGridOffsY : double;
MouseBoxState : TMouseBoxState;
LastMouseX : integer;
LastMouseY : integer;
MouseMoveActive : boolean;
MouseBoxX1 : integer;
MouseBoxX2 : integer;
MouseBoxY1 : integer;
MouseBoxY2 : integer;
FMTrace : array of TColoredPoint;{user-drawn mouse trace}
FNumMTrace : integer;
FColorMTrace : TColor;
FMTraceInvert : boolean;
WindAnchorX : integer;
WindAnchorY : integer;
WindOldCornerX : integer;
WindOldCornerY : integer;
FUseDataOf : TCustomRChart; { assigned shared data chart }
FDataUsers : array[1..MaxDataUsers] of TCustomRChart;
FDataUsersNum : integer;
FAnnoClassVisib : array[0..255] of boolean; { visibility of
annotation classes }
FItClassVisib : array[0..255] of boolean; { visibility of
item classes }
FLayerVisib : array[1..MAXNUMRCLAYERS] of boolean; { visib.
of layers }
FOnMMvInChart : TMouseMoveInChartEvent;
FOnZoomPan : TZoomPanEvent;
FOnSelectRect : TSelectRectEvent;
FOnRubberBand : TSelectRectEvent;
FOnScaleTickDrawn: TScaleTickDrawnEvent;
FOnBeforeTickLabel: TBeforeTickLabelEvent;
FOnDataRendered : TRenderEvent;
FOnBefRenderData : TRenderEvent;
FOnBefCrossHMove : TBeforeCrossHMoveEvent;
FOnBefRenderCItem: TBeforeRenderCItemEvent;
FOnScalesRendered: TRenderEvent;
FOnCrossHMove : TCrossHairMoveEvent;
FOnTxtLblMove : TTextLabelMoveEvent;
FOnMouseLeave : TNotifyEvent;
FOnMouseEnter : TNotifyEvent;
FOnBefRenderText : TBeforeRenderTextEvent;
AuxBmp : TBitMap; { bitmap to hold background picture }
GrafBmp : TBitmap; { off-screen graphics bitmap }
ChartBmp : TBitmap; { off-screen chart bitmap }
FBakGndFile : TBakGndImg; { background file }
FJointLayers : TJointLayers; { joint layer }
FDataTag : longint; { user defined tag }
RcGridStyle : GridStyleType; { style of grid }
RcGridCol : TColor; { color of grid }
RcGridDx : double; { x-distance of grid points }
RcGridDy : double; { y-distance of grid points }
RcLRim : integer; { left rim }
RcRRim : integer; { right rim }
RcTRim : integer; { top rim }
RcBRim : integer; { bottom rim }
F3DRim : integer; { width of shadow }
RcShadowStyle : TShadowStyle; { style of shadow }
FShadowColor : TColor; { color of shadow }
RcShadowBakCol : TColor; { color of shadow background }
RcMouseAction : TMouseActMode; { type of allowed mouse action }
FAllowZPToggle : boolean; { TRUE: zoom/pan toggle allowed }
FWasDblClk : boolean; { flag to suppress MouseDown
event after a double click }
RcDataCol : TColor; { color of data }
FChartFrameCol : TColor; { color of chart frame }
RcFillCol : TColor; { fill color of rect/ellipse }
RcChartCol : TColor; { color of chart background }
RcPenStyle : TPenStyle; { pen style of drawing }
RcWindCol : TColor; { color of window background }
RcLineWid : byte; { line width of tkLine and tkLineTo }
FChartCaption : string; { caption of chart }
FCaptPosX : integer; { x position of caption }
FCaptPosY : integer; { y position of caption }
FCaptAlignment : TAlignment; { alignment of chart caption }
FCaptAnchorX : TCaptionAnchorHoriz;
FCaptAnchorY : TCaptionAnchorVert;
FCaptTrim : integer; { max. allowed caption length }
RcClassDefault : byte; { default class number for new items }
FActiveLayer : integer; { index of currently active layer }
FMouseAffLayer : array[1..MAXNUMRCLAYERS] of boolean;
{ TRUE: mouse affects layer }
Cpkx, Cpdx : array[1..MAXNUMRCLAYERS] of extended;
{ params for scaling on x-axis }
Cpky, Cpdy : array[1..MAXNUMRCLAYERS] of extended;
{ params for scaling on y-axis }
RcXLabelType : TFigType; { type of labeling }
RcYLabelType : TFigType; { type of labeling }
FMousePosX : double; { mouse x position - real coords }
FMousePosY : double; { mouse y position - real coords }
FMCurFixed : boolean; { TRUE: fixed mouse cursor }
FCrossHair : array[1..MaxCrossH] of TCrossHair;{cross hairs }
FTextLabels : array[1..MAXTXTLBL] of TTextLabel;{text labels }
FScalesX : array[1..MAXNUMRCLAYERS] of TScale;
FScalesY : array[1..MAXNUMRCLAYERS] of TScale;
FScalePropsX : array[1..MAXNUMRCLAYERS] of TScalePropsHoriz;
FScalePropsY : array[1..MAXNUMRCLAYERS] of TScalePropsVert;
FAvoidDupMarks : boolean; { TRUE: avoid drawing duplicate marks }
FDupMarksMinD : integer; { minimum distance of duplicate marks }
CHNext : integer; { index of crosshair picked by mouse }
TLNext : integer; { index of text label picked by mouse }
FAutoRedraw : boolean; {TRUE: automatic redraw on any change }
FTextFont : TFont; { font of text labels }
FTextBkStyle : TTextBkg; { background style of text labels }
FTextAlignment : TAlignment; { alignment of text }
Fxasp, Fyasp : integer; { pixel widths of canvas }
FIsometric : boolean; { TRUE: scales are isometric }
FTranspItems : boolean;{TRUE: transparent ellipse & rectangle }
FZoomStack : array[1..MAXNUMRCLAYERS, 1..MaxZoomStack] of
TRectDouble;
FZStackPoi : integer; { zoom stack pointer }
FZoomRange : array[1..4] of extended; { confined zoom range }
function AddScaleInscription (Instring: string;
Inscr: string): string;
procedure AdjustCanInfoOfSharedCharts;
procedure AdjustScaling; virtual;
procedure ClearChartItem (var Item: TRcChartItem);
procedure ArrowIntern (x1,y1, x2,y2: double; HeadSize: integer;
CoordMode: TCoordMode);
procedure CrossIntern (cx,cy, dx,dy: double; CoordMode: TCoordMode);
procedure DoubleArrowIntern (x1,y1, x2,y2: double;
HeadSize: integer; CoordMode: TCoordMode);
procedure DrawToIntern (x,y: double; CoordMode: TCoordMode);
procedure MoveToIntern (x,y: double; CoordMode: TCoordMode);
procedure LineIntern (x1, y1, x2, y2: double; CoordMode: TCoordMode);
procedure RectangleIntern (x1, y1, x2, y2: double;
CoordMode: TCoordMode);
procedure CursorVertIntern (x: double; CoordMode: TCoordMode);
procedure CursorHorizIntern (y: double; CoordMode: TCoordMode);
procedure RectFrameIntern (x1,y1, x2, y2: double;
FrameStyle: TFrameStyle; ShadowColor,
HiLightColor: TColor; CoordMode: TCoordMode);
procedure TextIntern (x,y: double; size: integer; txt: string;
dx, dy: integer; Alignment: TAlignment;
CoordMode: TCoordMode);
{$IFDEF SDLDEBUG}
function CompStateAsText: string;
{$ENDIF}
procedure EnterPolyline (x,y: longint; cv: TCanvas);
function ExtractUserText (TickText: string; ix: integer): string;
procedure FinishPolyLine (cv: TCanvas);
procedure ForceRange (Layer: integer; xLo, yLo, xHi, yHi: extended;
EnterToZoomStack: boolean; ConfineRange: boolean);
procedure ForceRngIntern (Layer: integer; xLo, yLo, xHi,
yHi: extended; EnterToZoomStack: boolean;
ConfineRange: boolean);
procedure SetRangeIntern (Layer: integer; xLo, yLo, xHi,
yHi: extended; EnterToZoomStack: boolean;
ConfineRange: boolean);
function GetTypeOfFirstItem: TrcItem;
function GetTypeOfLastItem: TrcItem;
function GetAnnoClassVisib (cnum: byte): boolean;
function GetAnnoItem (idx: longint): TrcChartItem;
function GetAnnoLongText (idx: longint): string;
function GetClassVisib (cnum: byte): boolean;
function GetChartItem (idx: longint): TrcChartItem;
function GetDataLongText (idx: longint): string;
function GetMTracePoint (idx: longint): TColoredPoint;
function GetCHPosX (chnum: integer): double;
function GetCHPosY (chnum: integer): double;
function GetCrossHair1: TCrossHair;
function GetCrossHair2: TCrossHair;
function GetCrossHair3: TCrossHair;
function GetCrossHair4: TCrossHair;
function GetLayerVisib (Layer: integer): boolean;
function GetMAffLayer (layer: integer): boolean;
function GetScalePropsX1: TScalePropsHoriz;
function GetScalePropsY1: TScalePropsVert;
function GetScalePropsX2: TScalePropsHoriz;
function GetScalePropsY2: TScalePropsVert;
function GetTextFontStyle: TFontStyles;
{$IFDEF PAIDVERS}
function GetScalePropsX3: TScalePropsHoriz;
function GetScalePropsY3: TScalePropsVert;
function GetScalePropsX4: TScalePropsHoriz;
function GetScalePropsY4: TScalePropsVert;
{$ENDIF}
procedure BackupColorsAndMakeBW;
procedure ReloadBackupColors;
function GetScalePropsX (sclix: integer): TScalePropsHoriz;
function GetScalePropsY (sclix: integer): TScalePropsVert;
function GetItemCount (it: TrcItem): longint;
function GetFTextLabel (ix: integer): TTextLabel;
function GetTickPosX (ix: integer): double;
function GetTickPosXCnt: integer;
function GetTickPosY (ix: integer): double;
function GetTickPosYCnt: integer;
function GetMousePosX: double;
function GetMousePosY: double;
function GetZoomStackEntry (Layer, StackIx: integer): TRectDouble;
procedure LLCalcExtents (Layer: integer; Rim, MinRng: double;
var xLo, yLo, xHi, yHi: double);
procedure LLCalcMinMax (Layer: integer; RangeLoX, RangeLoY, rangehix,
RangeHiY: double; var xLo, yLo, xHi, yHi: double);
procedure ResetComp;
procedure SetActiveLayer (lay: integer);
procedure SetAllocSize (alloc: integer);
procedure SetAnnoClassVisib (cnum: byte; value: boolean);
procedure SetAnnoBelow (AnnoBelow: boolean);
procedure SetAnnoTextOnTop (AnnoTextOnTop: boolean);
procedure SetAnnosVisible (AnnosVisible: boolean);
procedure SetAnnoMode (AnnoMd: boolean);
procedure SetAnnoItem (idx: longint; item: TrcChartItem);
procedure SetAnnoLongText (idx: longint; txt: string);
procedure SetChartItem (idx: longint; item: TrcChartItem);
procedure SetClassVisib (cnum: byte; value: boolean);
procedure SetCHPosX (chnum: integer; value: double);
procedure SetCHPosY (chnum: integer; value: double);
procedure SetDataLongText (idx: longint; txt: string);
procedure SetDupMarksMinD (value: integer);
procedure SetLRim (r: integer);
procedure SetRRim (r: integer);
procedure SetTRim (r: INTEGER);
procedure SetBRim (r: integer);
procedure SetIsoMetric (im: boolean);
procedure SetAvoidDupMarks (value: boolean);
procedure SetLayerVisib (Layer: integer; value: boolean);
procedure SetMAffLayer (layer: integer; value: boolean);
procedure SetUseDataOf (orc: TCustomRChart);
procedure SetF3DRim (r: integer);
procedure SetDataTag (tag: longint);
procedure SetShadowStyle (ss: TShadowStyle);
procedure SetShadowColor (c: TColor);
procedure SetShadowBakColor (c: TColor);
procedure SetClassDefault (DefClass: byte);
procedure SetCrossHair1 (x: TCrossHair);
procedure SetCrossHair2 (x: TCrossHair);
procedure SetCrossHair3 (x: TCrossHair);
procedure SetCrossHair4 (x: TCrossHair);
procedure SetScalePropsX1 (x: TScalePropsHoriz);
procedure SetScalePropsY1 (x: TScalePropsVert);
procedure SetScalePropsX2 (x: TScalePropsHoriz);
procedure SetScalePropsY2 (x: TScalePropsVert);
{$IFDEF PAIDVERS}
procedure SetScalePropsX3 (x: TScalePropsHoriz);
procedure SetScalePropsY3 (x: TScalePropsVert);
procedure SetScalePropsX4 (x: TScalePropsHoriz);
procedure SetScalePropsY4 (x: TScalePropsVert);
{$ENDIF}
procedure SetScalePropsX (sclix: integer; x: TScalePropsHoriz);
procedure SetScalePropsY (sclix: integer; x: TScalePropsVert);
procedure SetScaleProps (var Scl: TScale; SclProps: TScaleProps);
procedure SetGridStyle (gs: GridStyleType);
procedure SetGridDx (dx: double);
procedure SetGridDy (dy: double);
procedure SetDataCol (c: TColor);
procedure SetScaleCol (c: TColor);
procedure SetFillCol (c: TColor);
procedure SetChartCol (c: TColor);
procedure SetWindCol (c: TColor);
procedure SetTextFontStyle (fs: TFontStyles);
procedure SetGridCol (c: TColor);
procedure SetChartCaption (hstr: string);
procedure SetCaptPosX (p: integer);
procedure SetCaptPosY (p: integer);
procedure SetCaptAlignment (al: TAlignment);
procedure SetCaptAnchorX (ca: TCaptionAnchorHoriz);
procedure SetCaptAnchorY (ca: TCaptionAnchorVert);
procedure SetCaptTrim (value: integer);
procedure SetPenStyle (ps: TPenStyle);
procedure SetLineWid (w: byte);
procedure WMMouseMoveInChart(var Message: TWMMouse);
message WM_MOUSEMOVE;
{$IFNDEF ISCLX} //&&& DHACK
procedure CMMouseLeave(var msg:TMessage); message CM_MOUSELeave;
procedure CMMouseEnter(var msg:TMessage); message CM_MOUSEEnter;
{$ENDIF}
procedure WMGetDlgCode(var message: TWMGetDlgCode);
message WM_GETDLGCODE;
procedure SetTextAlignment (al: TAlignment);
procedure SetFTextLabel (ix: integer; value: TTextLabel);
procedure SetJointLayers (value: TJointLayers);
procedure SetBakGndFile (x: TBakGndImg);
procedure SetStdLayout (lyt: TRCLayout);
procedure ZoomStateOnStack;
protected
FDataContainer : TRcItemContainer; // array of drawing items
FAnnoContainer : TRcItemContainer; // array annotation items
FLastElemOnShow : longint; // index of last entry when
// ShowGraf is called
FItemCount : array[TrcItem] of longint; // element count
FSuppressPaint : boolean; // TRUE: suppress all paint calls
procedure Assign(Source: TPersistent); override;
procedure AssignTo (Dest: TPersistent); override;
procedure Paint; override;
procedure Loaded; override;
function CalcTextExtents (InString: string; cv: TCanvas;
var txtwid, txthgt, lnhgt: integer): integer;
procedure DblClick; override;
procedure InitGraf (cv: TCanvas;
PosX, PosY, Wid, Hgt: integer); virtual;
function ClearAnnotations (Layer: integer): integer;
procedure ConvertToScreenCoords (ChartItem: TRcChartItem;
var txscr, tyscr, tx2scr, ty2scr: integer);
procedure ConstructChartBmp(cv: TCanvas);
procedure ConstructDataBmp (bmp: TBitMap; PosX, PosY: integer;
BlkWhite: boolean; FirstItem: integer); virtual;
procedure ConstructDataBmpCanvas (cv: TCanvas; PosX, PosY: integer;
BlkWhite: boolean; FirstItem: integer); virtual;
function CountAnnoByClass (ClList: array of byte): integer;
function CountAnnos (Tag: integer; TagMask: longword;
ItemClass: integer; ItemKind: TRcItem): integer;
function DetectScale (CoordX, CoordY: integer): integer; overload;
function DetectScale (CoordX, CoordY, AssumedWidth,
AssumedHeight: integer): integer; overload;
procedure DrawCrossHairs (xPos, yPos: integer; SrcBmp: TBitMap);
procedure DrawMouseTrace (xPos, yPos: integer; SrcBmp: TBitMap);
procedure DrawFinish (xPos, yPos: integer;
SrcBmp: TBitMap; DestCv: TCanvas);
procedure MouseMove (Shift: TShiftState; X,Y: integer); override;
procedure MouseMoveInChart (InChart: boolean; Shift: TShiftState;
RMousePosX, RMousePosY: double);
procedure MouseDown (Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); override;
procedure MouseUp (Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); override;
procedure StyleChanged (Sender: TObject);
procedure ScalePropsChanged(Sender: TObject);
procedure ScaleZoomPan (Sender: TObject);
procedure SetSuppressPaint (supp: boolean); virtual;
procedure DoOnScaleTickDrawn (Sender: TObject; Canvas: TCanvas;
ScaleType: TScaleType; CurrentTickPos: double;
ChartX, ChartY: integer);
procedure DoOnBeforeTickLabel (Sender: TObject;
ScaleType: TScaleType; CurrentTickPos: double;
var TickLabel: string);
procedure DoZoomPanEvent;
procedure DoSelectRectEvent (Layer: integer;
LoX, LoY, HiX, HiY: double);
procedure DoRubberBandEvent (Layer: integer;
LoX, LoY, HiX, HiY: double);
procedure DoCrossHMoveEvent (WhichCH: TCrossHair);
procedure DoTxtLblMoveEvent (WhichTL: TTextLabel);
procedure DoOnBeforeRenderChartItem (Sender: TObject;
var ChartItem: TRcChartItem; Index: integer;
IsAnnotation: boolean);
procedure DrawContainerItemOnCanvas (cv: TCanvas;
ChartItem: TRcChartItem; ContainerIdx: integer;
IsAnnotation: boolean; LongTexts: TLongTextArray;
BlkWhite: boolean; PosX, PosY: integer);
// properties and methods to be public
procedure M2R (Layer: integer; xin,yin: longint;
var xout,yout: double);
procedure R2M (Layer: integer; xin,yin: double;
var xout,yout: longint);
procedure ClearGraf;
procedure ConfineZoomRange (xLo, yLo, xHi, yHi: double);
procedure ShowGraf;
procedure ShowGrafNewOnly;
function MouseBox (var xLo, yLo, xHi, yHi: double): boolean;
procedure MouseBoxAbort;
property ActiveLayer: integer
read FActiveLayer write SetActiveLayer;
property AllowZoomPanToggle: boolean
read FAllowZPToggle write FAllowZPToggle;
property AnnoContainer [idx: longint]: TrcChartItem
read GetAnnoItem write SetAnnoItem;
property AnnoMode: boolean
read FAnnoMode write SetAnnoMode;
property AnnoBelowChart: boolean
read FAnnoBelowChart write SetAnnoBelow;
property AnnoLongText[idx: integer]: string
read GetAnnoLongText write SetAnnoLongText;
property AnnoTextOnTop: boolean
read FAnnoTextOnTop write SetAnnoTextOnTop;
property AnnosVisible: boolean
read FAnnosVisible write SetAnnosVisible;
function AddTextLabel (PosX, PosY: double; TxtColor: TColor;
Txt: string; PropertyTemplate: integer): integer;
procedure Arc (cx, cy, HorizAxLeng, VertAxLeng,
Angle1, Angle2: double);
procedure Arrow (x1,y1, x2,y2: double; HeadSize: integer); overload;
procedure Arrow (x1,y1: integer; x2,y2: double;
HeadSize: integer); overload;
procedure Arrow (x1,y1: double; x2,y2: integer;
HeadSize: integer); overload;
procedure Arrow (x1,y1, x2,y2: integer; HeadSize: integer); overload;
procedure Arrow (x1: integer; y1: double;
x2: integer; y2: double; HeadSize: integer); overload;
procedure Arrow (x1: double; y1: integer;
x2: double; y2: integer; HeadSize: integer); overload;
procedure Bar3D (llx, lly, urx, ury: double;
Depth: integer; Angle: integer);
procedure ClearAllTextLabels;
procedure ClearMouseTrace;
procedure ClearZoomHistory;
procedure CopyToBitmap (ABitmap: TBitmap;
BlkWhite: boolean); overload;
procedure CopyToBitmap (ABitmap: TBitmap; BlkWhite,
IncludeCrossHairs: boolean); overload;
procedure CopyToBitmapDAOnly (ABitmap: TBitmap;
BlkWhite: boolean); overload;
procedure CopyToBitmapDAOnly (ABitmap: TBitmap; BlkWhite,
IncludeCrossHairs: boolean); overload;
procedure CopyToBMP (FName: string; BlkWhite: boolean);
procedure CopyToClipboard (BlkWhite: boolean); overload;
procedure CopyToClipboard (BlkWhite,
IncludeCrossHairs: boolean); overload;
procedure CopyToClipboardDAOnly (BlkWhite: boolean); overload;
procedure CopyToClipboardDAOnly (BlkWhite,
IncludeCrossHairs: boolean); overload;
{$IFNDEF ISCLX}
procedure CopyToClipboardWMF (BlkWhite: boolean);
procedure CopyToWMF (FName: string; BlkWhite: boolean);
procedure CopyToOpenPrinter (var x,y: integer; ScaleF: double;
BlkWhite: boolean);
procedure PrintIt (ScaleF: double; BlkWhite: boolean);
{$ENDIF}
procedure Cross (cx, cy, dx, dy: double); overload;
procedure Cross (cx, cy: double; dx, dy: integer); overload;
procedure Cross (cx, cy, dx, dy: integer); overload;
property DataContainer[idx: longint]: TrcChartItem
read GetChartItem write SetChartItem;
property DataLongText[idx: integer]: string
read GetDataLongText write SetDataLongText;
procedure DoubleArrow (x1,y1, x2,y2: double;
HeadSize: integer); overload;
procedure DoubleArrow (x1,y1: integer; x2,y2: double;
HeadSize: integer); overload;
procedure DoubleArrow (x1,y1: double; x2,y2: integer;
HeadSize: integer); overload;
procedure DoubleArrow (x1,y1, x2,y2: integer;
HeadSize: integer); overload;
procedure DoubleArrow (x1: integer; y1: double;
x2: integer; y2: double;
HeadSize: integer); overload;
procedure DoubleArrow (x1: double; y1: integer;
x2: double; y2: integer;
HeadSize: integer); overload;
property CrossHairPosX [chnum: integer]: double
read GetCHPosX write SetCHPosX;
property CrossHairPosY [chnum: integer]: double
read GetCHPosY write SetCHPosY;
procedure CrossHairSetPos (chnum: integer; x,y: double);
procedure CrossHairSetup (ch: integer; chColor: TColor;
Mode: TCrossHMode; LineType: TPenStyle;
LineWidth: integer);
property DataTag: longint read FDataTag write SetDataTag;
procedure CursorHoriz (y: double); overload;
procedure CursorHoriz (y: integer); overload;
procedure CursorVert (x: double); overload;
procedure CursorVert (x: integer); overload;
procedure DrawTo (x,y: double); overload;
procedure DrawTo (x,y: integer); overload;
procedure DrawTo (x: integer; y: double); overload;
procedure DrawTo (x: double; y: integer); overload;
procedure DrawToRelPix (dx,dy: integer); overload;
procedure DrawToRelPix (x,y: double; dx,dy: integer); overload;
procedure Ellipse (cx, cy, HorizAxLeng, VertAxLeng: double);
function FindEncircledData (pg: TPDblArray;
var ItemList: TIntArray): integer;
procedure HideAllTextLabels;
procedure Line (x1,y1, x2, y2: double); overload;
procedure Line (x1,y1, x2, y2: integer); overload;
procedure Line (x1,y1: double; x2, y2: integer); overload;
procedure Line (x1,y1: integer; x2, y2: double); overload;
procedure LineOffset (x1,y1, x2, y2: double; dx, dy: integer);
procedure MoveTo (x,y: double); overload;
procedure MoveTo (x,y: integer); overload;
procedure MoveTo (x: integer; y: double); overload;
procedure MoveTo (x: double; y: integer); overload;
procedure MoveToRelPix (dx,dy: integer);
procedure MarkAt (x,y: double; mk: byte); overload;
procedure MarkAt (x,y: integer; mk: byte); overload;
procedure MarkErrorBar (x,y: double; dlower, dupper: double;
Dir: TOrientation; mk: byte);
procedure Rectangle (x1,y1, x2, y2: double); overload;
procedure Rectangle (x1,y1, x2, y2: integer); overload;
procedure Rectangle (x1,y1: integer; x2, y2: double); overload;
procedure Rectangle (x1,y1: double; x2, y2: integer); overload;
procedure RectangleRelPix (centx,centy: double; dx, dy: integer);
procedure RectFrame (x1,y1, x2, y2: double;
FrameStyle: TFrameStyle;
ShadowColor, HiLightColor: TColor); overload;
procedure RectFrame (x1,y1, x2, y2: integer;
FrameStyle: TFrameStyle;
ShadowColor, HiLightColor: TColor); overload;
procedure RectFrame (x1,y1: integer; x2, y2: double;
FrameStyle: TFrameStyle;
ShadowColor, HiLightColor: TColor); overload;
procedure RectFrame (x1,y1: double; x2, y2: integer;
FrameStyle: TFrameStyle;
ShadowColor, HiLightColor: TColor); overload;
procedure Text (x,y: double; size: integer; txt: string); overload;
procedure Text (x,y: integer; size: integer; txt: string); overload;
procedure Text (x,y: double; size: integer; txt: string;
dx, dy: integer; Alignment: TAlignment); overload;
procedure Text (x: integer; y: double; size: integer;
txt: string); overload;
procedure Text (x: double; y: integer; size: integer;
txt: string); overload;
procedure SaveDataASC (FName: string);
{$IFNDEF DOTNET}
procedure SaveData (FName: string);
function LoadData (FName: string; AppendIt: boolean): integer;
procedure SaveAnno (FName: string);
function LoadAnno (FName: string; AppendIt: boolean): integer;
{$ENDIF}
procedure SetRange (Layer: integer; xLo, yLo, xHi, yHi: extended);
procedure AutoRange (Layer: integer; Margin: double); overload;
procedure AutoRange (Layer: integer;
Margin, MinRange: double); overload;
procedure AutoRangeXOnly (Layer: integer;
Margin: double); overload;
procedure AutoRangeXOnly (Layer: integer;
Margin, MinRange: double); overload;
procedure AutoRangeYOnly (Layer: integer;
Margin: double); overload;
procedure AutoRangeYOnly (Layer: integer;
Margin, MinRange: double); overload;
procedure CopyAnnoFrom (SrcChart: TCustomRChart;
ClassFilter: array of byte; AppendIt: boolean);
procedure SetEqualRange (Layers: TLayerSet);
procedure SetEqualRangeXOnly (Layers: TLayerSet);
procedure SetEqualRangeYOnly (Layers: TLayerSet);
{ process single item }
procedure RemoveAnnoItem (Index: longint);
procedure RemoveLastItem;
procedure RemoveFirstItem;
procedure RemoveItem (Index: longint);
function RemoveItemsByClass (ClassNumber: byte): longint;
function RemoveItemsByLayer (Layer: integer): longint;
procedure FindMinMax (Layer: integer; RangeLoX, RangeLoY, RangeHiX,
RangeHiY: double; var MinX, MinY, MaxX, MaxY: double);
function FindNearestAnnoElem (mx, my: double; ItemID: TrcItem;
ClassNumber: byte; VisLayersOnly: boolean;
var Dist: double): longint;
function FindNearestItemReal (mx, my: double; ItemID: TrcItem;
ClassNumber: byte; var Dist: double): longint; overload;
function FindNearestItemReal (mx, my: double; ItemID: TrcItem;
ClassNumber: byte; VisLayersOnly: boolean;
var Dist: double): longint; overload;
function FindNearestItemScreen (mx, my: double; ItemID: TrcItem;
ClassNumber: byte; var Dist: double): longint; overload;
function FindNearestItemScreen (mx, my: double; ItemID: TrcItem;
ClassNumber: byte; VisLayersOnly: boolean;
var Dist: double): longint; overload;
function FindNearestItemAlongAxis (pos: double; Axis: TAxis;
ItemID: TrcItem; ClassNumber: byte;
var dist: double): longint; overload;
function FindNearestItemAlongAxis (pos: double; Axis: TAxis;
ItemID: TrcItem; ClassNumber: byte;
VisLayersOnly: boolean;
var dist: double): longint; overload;
function FindUsedLayers: TLayerSet;
function GetItemParams (Item: longint): TrcChartItem;
procedure GetTransformParams (Layer: integer;
var kx, dx, ky, dy: double);
property ItemCount[it: TrcItem]: longint read GetItemCount;
procedure SetItemParams (Item: longint; ItParams: TrcChartItem);
procedure ScaleItem (Item: longint; kx, dx, ky, dy: double);
{ process more items }
function MarkItemsInWindow (xLo, YLo, XHi, YHi: double;
ItemID: TrcItem; ClassNumber: byte): longint;
procedure MarkAllItems (ItemID: TrcItem; ClassNumber: byte);
property MinDupMarkDist: integer
read FDupMarksMinD write SetDupMarksMinD;
property MouseAffectsLayer[Layer: integer]: boolean
read GetMAffLayer write SetMAffLayer;
property MousePosX: double read GetMousePosX;
property MousePosY: double read GetMousePosY;
property MouseTrace[idx: longint]: TColoredPoint
read GetMTracePoint;
property NumMTracePoints: longint read FNumMTrace;
property NumItems: longint read FNumChartItems;
property NumAnnos: longint read FNumAnnoItems;
property AnnoClassVisible [cnum:byte]: boolean
read GetAnnoClassVisib write SetAnnoClassVisib;
property ClassVisible [cnum:byte]: boolean
read GetClassVisib write SetClassVisib;
property LayerVisible [layer: integer]: boolean
read GetLayerVisib write SetLayerVisib;
procedure ScaleAllItems (kx, dx, ky, dy: double);
property ScalePropsX [SclIx: integer]: TScalePropsHoriz
read GetScalePropsX write setScalePropsX;
property ScalePropsY [SclIx: integer]: TScalePropsVert
read GetScalePropsY write setScalePropsY;
procedure ScaleSelectedItems (kx, dx, ky, dy: double;
ClassNumber: byte);
function SearchAnnoItem (StartIx, Tag: integer; TagMask: longword;
ItemClass: integer; ItemKind: TRcItem): integer;
function SearchDataItem (StartIx, Tag: integer; TagMask: longword;
ItemClass: integer; ItemKind: TRcItem): integer;
procedure SetTextLabel (Idx: integer; PosX, PosY: double;
TxtColor: TColor; Txt: string;
PropertyTemplate: integer);
property SuppressPaint: boolean
read FSuppressPaint write SetSuppressPaint;
property TransparentItems: boolean
read FTranspItems write FTranspItems;
property TypeOfLastItem: TrcItem read GetTypeOfLastItem;
property TypeOfFirstItem: TrcItem read GetTypeOfFirstItem;
procedure NewColorOfClassItems (Newcol: TColor; ClassNumber: byte);
property TextLabels[ix: integer]: TTextLabel
read GetFTextLabel write SetFTextLabel;
property TickPosX [ix: integer]: double read GetTickPosX;
property TickPosY [iy: integer]: double read GetTickPosY;
property TickNumX: integer read GetTickPosXCnt;
property TickNumY: integer read GetTickPosYCnt;
property ZoomState: TZoomState read FZoomState;
procedure ZoomHistory (Index: integer);
property ZoomStack [Layer, StackIx: integer]: TRectDouble
read GetZoomStackEntry;
// properties to be published
property Font;
property Align;
property Visible;
property ShowHint;
property PopupMenu;
property Anchors;
property Constraints;
{$IFNDEF ISCLX}
property DragKind;
property DragCursor;
property DragMode;
{$ENDIF}
property AllocSize: integer read FAllocSize write SetAllocSize;
property AutoRedraw: boolean read FAutoRedraw write FAutoRedraw;
property LRim: integer read RcLrim write SetLRim default DefLRim;
property RRim: integer read RcRRim write SetRRim default DefRRim;
property TRim: integer read RcTRim write SetTRim default DefTRim;
property BRim: integer read RcBRim write SetBRim default DefBRim;
property MarginLeft: integer
read RcLrim write SetLRim default DefLRim;
property MarginRight: integer
read RcRRim write SetRRim default DefRRim;
property MarginTop: integer
read RcTRim write SetTRim default DefTRim;
property MarginBottom: integer
read RcBRim write SetBRim default DefBRim;
property BackGroundImg: TBakGndImg
read FBakGndFile write SetBakGndFile;
property ClassDefault: byte
read RcClassDefault write SetClassDefault;
property GridStyle: GridStyleType
read RcGridStyle write SetGridStyle;
property GridDx: double read RcGridDx write SetGridDx;
property GridDy: double read RcGridDy write SetGridDy;
property Isometric: boolean read FIsoMetric write SetIsoMetric;
property DataColor: TColor
read RcDataCol write SetDataCol default DefDataCol;
property PenStyle: TPenStyle
read RcPenStyle write SetPenStyle default DefPenStyle;
property ChartFrameColor: TColor
read FChartFrameCol write SetScaleCol
default DefChartFrameCol;
property FillColor: TColor
read RcFillCol write SetFillCol default DefFillCol;
property ChartColor: TColor
read RcChartCol write SetChartCol default DefChartCol;
property WindColor: TColor
read RcWindCol write SetWindCol default DefWindCol;
property GridColor: TColor
read RcGridCol write SetGridCol default DefGridCol;
property JointLayers: TJointLayers
read FJointLayers write SetJointLayers;
property LineWidth: byte
read RcLineWid write SetLineWid default DefLineWid;
property Caption: string read FChartCaption write SetChartCaption;
property CaptionPosX: integer read FCaptPosX write SetCaptPosX;
property CaptionPosY: integer read FCaptPosY write SetCaptPosY;
property CaptionAlignment: TAlignment
read FCaptAlignment write SetCaptAlignment;
property CaptionAnchorHoriz: TCaptionAnchorHoriz
read FCaptAnchorX write SetCaptAnchorX;
property CaptionAnchorVert: TCaptionAnchorVert
read FCaptAnchorY write SetCaptAnchorY;
property CaptionTrim: integer read FCaptTrim write SetCaptTrim;
property MouseTraceColor: TColor
read FColorMTrace write FColorMTrace;
property MouseTraceInvert: boolean
read FMTraceInvert write FMTraceInvert;
property CrossHair1: TCrossHair
read GetCrossHair1 write SetCrossHair1;
property CrossHair2: TCrossHair
read GetCrossHair2 write SetCrossHair2;
property CrossHair3: TCrossHair
read GetCrossHair3 write SetCrossHair3;
property CrossHair4: TCrossHair
read GetCrossHair4 write SetCrossHair4;
property MouseAction: TMouseActMode
read RcMouseAction write RcMouseAction;
property MouseCursorFixed: boolean
read FMCurFixed write FMCurFixed;
property PanGridDx: double read FPanGridDx write FPanGridDx;
property PanGridDy: double read FPanGridDy write FPanGridDy;
property PanGridOffsX: double read FPanGridOffsX write FPanGridOffsX;
property PanGridOffsY: double read FPanGridOffsY write FPanGridOffsY;
property AvoidDuplicateMarks: boolean
read FAvoidDupMarks write SetAvoidDupMarks;
property Scale1X: TScalePropsHoriz
read GetScalePropsX1 write SetScalePropsX1;
property Scale1Y: TScalePropsVert
read GetScalePropsY1 write SetScalePropsY1;
property Scale2X: TScalePropsHoriz
read GetScalePropsX2 write SetScalePropsX2;
property Scale2Y: TScalePropsVert
read GetScalePropsY2 write SetScalePropsY2;
{$IFDEF PAIDVERS}
property Scale3X: TScalePropsHoriz
read GetScalePropsX3 write SetScalePropsX3;
property Scale3Y: TScalePropsVert
read GetScalePropsY3 write SetScalePropsY3;
property Scale4X: TScalePropsHoriz
read GetScalePropsX4 write SetScalePropsX4;
property Scale4Y: TScalePropsVert
read GetScalePropsY4 write SetScalePropsY4;
{$ENDIF}
property StandardLayout: TRCLayout
read FStdLayout write SetStdLayout stored false;
property ShadowWidth: integer
read F3DRim write SetF3DRim default DefShadowWidth;
property ShadowStyle: TShadowStyle
read RcShadowStyle write SetShadowStyle;
property ShadowColor: TColor
read FShadowColor write SetShadowColor;
property ShadowBakColor: TColor
read RcShadowBakCol write SetShadowBakColor;
property UseDataOf: TCustomRChart
read FUseDataOf write SetUseDataOf;
property TextFontStyle: TFontStyles
read GetTextFontStyle write SetTextFontStyle;
property TextFont: TFont
read FTextFont write FTextFont;
property TextBkStyle: TTextBkg
read FTextBkStyle write FTextBkStyle;
property TextBkColor: TColor
read RcFillCol write SetFillCol default DefFillCol;
property TextAlignment: TAlignment
read FTextAlignment write SetTextAlignment;
property OnClick;
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEndDrag;
property OnMouseMove;
property OnMouseDown;
property OnMouseUp;
property OnMouseEnter: TNotifyEvent
read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave: TNotifyEvent
read FOnMouseLeave write FOnMouseLeave;
property OnKeyDown;
property OnKeyUp;
property OnKeyPress;
property OnMouseMoveInChart: TMouseMoveInChartEvent
read FOnMMvInChart write FOnMMvInChart;
property OnRubberBand: TSelectRectEvent
read FOnRubberBand write FOnRubberBand;
property OnSelectRect: TSelectRectEvent
read FOnSelectRect write FOnSelectRect;
property OnZoomPan: TZoomPanEvent
read FOnZoomPan write FOnZoomPan;
property OnScaleTickDrawn: TScaleTickDrawnEvent
read FOnScaleTickDrawn write FOnScaleTickDrawn;
property OnBeforeTickLabel: TBeforeTickLabelEvent
read FOnBeforeTickLabel write FOnBeforeTickLabel;
property OnBeforeRenderData: TRenderEvent
read FOnBefRenderData write FOnBefRenderData;
property OnBeforeCrossHairMove: TBeforeCrossHMoveEvent
read FOnBefCrossHMove write FOnBefCrossHMove;
property OnBeforeRenderChartItem: TBeforeRenderCItemEvent
read FOnBefRenderCItem write FOnBefRenderCItem;
property OnBeforeRenderText: TBeforeRenderTextEvent
read FOnBefRenderText write FOnBefRenderText;
property OnDataRendered: TRenderEvent
read FOnDataRendered write FOnDataRendered;
property OnScalesRendered: TRenderEvent
read FOnScalesRendered write FOnScalesRendered;
property OnStartDrag;
property OnCrossHairMove: TCrossHairMoveEvent
read FOnCrossHMove write FOnCrossHMove;
property OnTextLabelMove: TTextLabelMoveEvent
read FOnTxtLblMove write FOnTxtLblMove;
{$IFNDEF ISCLX} // Kylix does not know OnCanResize
property OnCanResize;
property OnResize;
{$ENDIF}
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure SetBounds (ALeft,ATop,AWidth,AHeight: Integer); override;
end;
{$IFDEF GE_LEV29}
[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidWin64x)]
{$ENDIF}
TRChart = class (TCustomRChart)
protected
procedure CreateWnd; override;
public
procedure Assign(Source: TPersistent);
procedure M2R (Layer: integer; xin,yin: longint;
var xout,yout: double);
procedure R2M (Layer: integer; xin,yin: double;
var xout,yout: longint);
procedure ClearGraf;
procedure ClearAnnotations; overload;
function ClearAnnotations (Layer: integer): integer; overload;
procedure ConfineZoomRange (xLo, yLo, xHi, yHi: double);
function CountAnnoByClass (ClList: array of byte): integer;
function CountAnnos (Tag: integer; TagMask: longword;
ItemClass: integer; ItemKind: TRcItem): integer;
procedure ShowGraf;
procedure ShowGrafNewOnly;
procedure SetBounds (ALeft, ATop, AWidth,
AHeight: Integer); override;
function MouseBox (var xLo, yLo, xHi, yHi: double): boolean;
procedure MouseBoxAbort;
property ActiveLayer;
property AllowZoomPanToggle;
property AnnoBelowChart;
property AnnoTextOnTop;
property AnnosVisible;
property AnnoMode;
function AddTextLabel (PosX, PosY: double; TxtColor: TColor;
Txt: string; PropertyTemplate: integer): integer;
procedure HideAllTextLabels;
procedure ClearAllTextLabels;
procedure Arc (cx,cy,HorizAxLeng,VertAxLeng,Angle1,Angle2: double);
procedure Arrow (x1,y1, x2,y2: double;
HeadSize: integer); overload;
procedure Arrow (x1,y1: integer; x2,y2: double;
HeadSize: integer); overload;
procedure Arrow (x1,y1: double; x2,y2: integer;
HeadSize: integer); overload;
procedure Arrow (x1,y1, x2,y2: integer;
HeadSize: integer); overload;
procedure Arrow (x1: integer; y1: double;
x2: integer; y2: double;
HeadSize: integer); overload;
procedure Arrow (x1: double; y1: integer;
x2: double; y2: integer;
HeadSize: integer); overload;
procedure Bar3D (llx, lly, urx, ury: double;
Depth: integer; Angle: integer);
procedure ClearMouseTrace;
procedure ClearZoomHistory;
procedure CopyToBitmap (ABitmap: TBitmap;
BlkWhite: boolean); overload;
procedure CopyToBitmap (ABitmap: TBitmap; BlkWhite,
IncludeCrossHairs: boolean); overload;
procedure CopyToBitmapDAOnly (ABitmap: TBitmap;
BlkWhite: boolean); overload;
procedure CopyToBitmapDAOnly (ABitmap: TBitmap; BlkWhite,
IncludeCrossHairs: boolean); overload;
procedure CopyToBMP (FName: string; BlkWhite: boolean);
procedure CopyToClipboard (BlkWhite: boolean); overload;
procedure CopyToClipboard (BlkWhite,
IncludeCrossHairs: boolean); overload;
procedure CopyToClipboardDAOnly (BlkWhite: boolean);overload;
procedure CopyToClipboardDAOnly (BlkWhite,
IncludeCrossHairs: boolean); overload;
{$IFNDEF ISCLX}
procedure CopyToClipboardWMF (BlkWhite: boolean);
procedure CopyToWMF (FName: string; BlkWhite: boolean);
procedure CopyToOpenPrinter (var x,y: integer; ScaleF: double;
BlkWhite: boolean);
procedure PrintIt (ScaleF: double; BlkWhite: boolean);
{$ENDIF}
property DataContainer;
property AnnoContainer;
property AnnoLongText;
procedure Cross (cx, cy, dx, dy: double); overload;
procedure Cross (cx, cy: double; dx, dy: integer); overload;
procedure Cross (cx, cy, dx, dy: integer); overload;
property CrossHairPosX;
property CrossHairPosY;
procedure CrossHairSetPos (chnum: integer; x,y: double);
procedure CrossHairSetup (ch: integer; chColor: TColor;
Mode: TCrossHMode; LineType: TPenStyle;
LineWidth: integer);
property DataTag;
property DataLongText;
procedure CursorHoriz (y: double); overload;
procedure CursorHoriz (y: integer); overload;
procedure CursorVert (x: double); overload;
procedure CursorVert (x: integer); overload;
procedure DrawTo (x,y: double); overload;
procedure DrawTo (x,y: integer); overload;
procedure DrawTo (x: integer; y: double); overload;
procedure DrawTo (x: double; y: integer); overload;
procedure DrawToRelPix (dx,dy: integer); overload;
procedure DrawToRelPix (x,y: double; dx,dy: integer); overload;
procedure DoubleArrow (x1,y1, x2,y2: double;
HeadSize: integer); overload;
procedure DoubleArrow (x1,y1: integer; x2,y2: double;
HeadSize: integer); overload;
procedure DoubleArrow (x1,y1: double; x2,y2: integer;
HeadSize: integer); overload;
procedure DoubleArrow (x1,y1, x2,y2: integer;
HeadSize: integer); overload;
procedure DoubleArrow (x1: integer; y1: double;
x2: integer; y2: double;
HeadSize: integer); overload;
procedure DoubleArrow (x1: double; y1: integer;
x2: double; y2: integer;
HeadSize: integer); overload;
procedure Ellipse (cx, cy, HorizAxLeng, VertAxLeng: double);
function FindEncircledData (pg: TPDblArray;
var ItemList: TIntArray): integer;
procedure Line (x1,y1, x2, y2: double); overload;
procedure Line (x1,y1, x2, y2: integer); overload;
procedure Line (x1,y1: double; x2, y2: integer); overload;
procedure Line (x1,y1: integer; x2, y2: double); overload;
procedure LineOffset (x1,y1, x2, y2: double; dx, dy: integer);
procedure MoveTo (x,y: double); overload;
procedure MoveTo (x,y: integer); overload;
procedure MoveTo (x: integer; y: double); overload;
procedure MoveTo (x: double; y: integer); overload;
procedure MoveToRelPix (dx,dy: integer);
procedure MarkAt (x,y: double; mk: byte); overload;
procedure MarkAt (x,y: integer; mk: byte); overload;
procedure MarkErrorBar (x,y: double; dlower, dupper: double;
Dir: TOrientation; mk: byte);
procedure Rectangle (x1,y1, x2, y2: double); overload;
procedure Rectangle (x1,y1, x2, y2: integer); overload;
procedure Rectangle (x1,y1: integer; x2, y2: double); overload;
procedure Rectangle (x1,y1: double; x2, y2: integer); overload;
procedure RectangleRelPix (centx,centy: double; dx, dy: integer);
procedure RectFrame (x1,y1, x2, y2: double;
FrameStyle: TFrameStyle;
ShadowColor, HiLightColor: TColor); overload;
procedure RectFrame (x1,y1, x2, y2: integer;
FrameStyle: TFrameStyle;
ShadowColor, HiLightColor: TColor); overload;
procedure RectFrame (x1,y1: integer; x2, y2: double;
FrameStyle: TFrameStyle;
ShadowColor, HiLightColor: TColor); overload;
procedure RectFrame (x1,y1: double; x2, y2: integer;
FrameStyle: TFrameStyle;
ShadowColor, HiLightColor: TColor); overload;
procedure SaveDataASC (FName: string);
{$IFNDEF DOTNET}
procedure SaveData (FName: string);
function LoadData (FName: string; AppendIt: boolean): integer;
procedure SaveAnno (FName: string);
function LoadAnno (FName: string; AppendIt: boolean): integer;
{$ENDIF}
procedure SetRange (Layer: integer; xLo, yLo, xHi, yHi: extended);
procedure AutoRange (Layer: integer; Margin: double); overload;
procedure AutoRange (Layer: integer;
Margin, MinRange: double); overload;
procedure AutoRangeXOnly (Layer: integer;
Margin: double); overload;
procedure AutoRangeXOnly (Layer: integer;
Margin, MinRange: double); overload;
procedure AutoRangeYOnly (Layer: integer;
Margin: double); overload;
procedure AutoRangeYOnly (Layer: integer;
Margin, MinRange: double); overload;
procedure CopyAnnoFrom (SrcChart: TCustomRChart;
ClassFilter: array of byte; AppendIt: boolean);
function DetectScale (CoordX, CoordY: integer): integer; overload;
function DetectScale (CoordX, CoordY, AssumedWidth,
AssumedHeight: integer): integer; overload;
procedure SetEqualRange (Layers: TLayerSet);
procedure SetEqualRangeXOnly (Layers: TLayerSet);
procedure SetEqualRangeYOnly (Layers: TLayerSet);
procedure Text (x,y: double; size: integer; txt: string); overload;
procedure Text (x,y: integer; size: integer; txt: string); overload;
procedure Text (x,y: double; size: integer; txt: string;
dx, dy: integer; Alignment: TAlignment); overload;
procedure Text (x: integer; y: double; size: integer;
txt: string); overload;
procedure Text (x: double; y: integer; size: integer;
txt: string); overload;
{ process single item }
procedure RemoveAnnoItem (Index: longint);
procedure RemoveLastItem;
procedure RemoveFirstItem;
procedure RemoveItem (Index: longint);
function RemoveItemsByClass (ClassNumber: byte): longint;
function RemoveItemsByLayer (Layer: integer): longint;
procedure FindMinMax (Layer: integer; RangeLoX, RangeLoY,
RangeHiX, RangeHiY: double;
var MinX, MinY, MaxX, MaxY: double);
function FindNearestAnnoElem (mx, my: double; ItemID: TrcItem;
ClassNumber: byte; VisLayersOnly: boolean;
var Dist: double): longint;
function FindNearestItemReal (mx, my: double; ItemID: TrcItem;
ClassNumber: byte; var Dist: double): longint; overload;
function FindNearestItemReal (mx, my: double; ItemID: TrcItem;
ClassNumber: byte; VisLayersOnly: boolean;
var Dist: double): longint; overload;
function FindNearestItemScreen (mx, my: double; ItemID: TrcItem;
ClassNumber: byte; var Dist: double): longint; overload;
function FindNearestItemScreen (mx, my: double; ItemID: TrcItem;
ClassNumber: byte; VisLayersOnly: boolean;
var Dist: double): longint; overload;
function FindNearestItemAlongAxis (pos: double; Axis: TAxis;
ItemID: TrcItem; ClassNumber: byte;
var dist: double): longint; overload;
function FindNearestItemAlongAxis (pos: double; Axis: TAxis;
ItemID: TrcItem; ClassNumber: byte;
VisLayersOnly: boolean;
var dist: double): longint; overload;
function FindUsedLayers: TLayerSet;
function GetItemParams (Item: longint): TrcChartItem;
procedure GetTransformParams (Layer: integer;
var kx, dx, ky, dy: double);
property ItemCount;
procedure SetItemParams (Item: longint; ItParams: TrcChartItem);
procedure ScaleItem (Item: longint; kx, dx, ky, dy: double);
{ process more items }
function MarkItemsInWindow (xLo, YLo, XHi, YHi: double;
ItemID: TrcItem; ClassNumber: byte): longint;
procedure MarkAllItems (ItemID: TrcItem; ClassNumber: byte);
property MouseAffectsLayer;
property MousePosX;
property MousePosY;
property MouseTrace[idx: longint]: TColoredPoint
read GetMTracePoint;
property NumMTracePoints: longint read FNumMTrace;
property NumAnnos;
property NumItems;
property AnnoClassVisible;
property ClassVisible;
property LayerVisible;
procedure ResetComp;
procedure ScaleAllItems (kx, dx, ky, dy: double);
property ScalePropsX;
property ScalePropsY;
procedure ScaleSelectedItems (kx, dx, ky, dy: double;
ClassNumber: byte);
function SearchAnnoItem (StartIx, Tag: integer; TagMask: longword;
ItemClass: integer; ItemKind: TRcItem): integer;
function SearchDataItem (StartIx, Tag: integer; TagMask: longword;
ItemClass: integer; ItemKind: TRcItem): integer;
procedure SetTextLabel (Idx: integer; PosX, PosY: double;
TxtColor: TColor; Txt: string;
PropertyTemplate: integer);
property SuppressPaint;
property TransparentItems;
property TypeOfLastItem;
property TypeOfFirstItem;
procedure NewColorOfClassItems (Newcol: TColor;
ClassNumber: byte);
property TextLabels;
property TickPosX;
property TickPosY;
property TickNumX;
property TickNumY;
property ZoomState;
procedure ZoomHistory (Index: integer);
property ZoomStack;
published
property Font;
property Align;
property AvoidDuplicateMarks;
property Visible;
property ShowHint;
property PopupMenu;
property Anchors;
property Constraints;
{$IFNDEF ISCLX}
property DragKind;
property DragCursor;
property DragMode;
{$ENDIF}
property AllocSize;
property AutoRedraw;
property MarginLeft;
property MarginRight;
property MarginTop;
property MarginBottom;
property MinDupMarkDist;
property LRim;
property RRim;
property TRim;
property BRim;
property BackGroundImg;
property ClassDefault;
property GridStyle;
property GridDx;
property GridDy;
property Isometric;
property DataColor;
property PenStyle;
property ChartFrameColor;
property FillColor;
property ChartColor;
property WindColor;
property GridColor;
property JointLayers;
property LineWidth;
property Caption;
property CaptionPosX;
property CaptionPosY;
property CaptionAlignment;
property CaptionAnchorHoriz;
property CaptionAnchorVert;
property CaptionTrim;
property MouseTraceColor;
property MouseTraceInvert;
property CrossHair1;
property CrossHair2;
property CrossHair3;
property CrossHair4;
property MouseAction;
property MouseCursorFixed;
property PanGridDx;
property PanGridDy;
property PanGridOffsX;
property PanGridOffsY;
property Scale1X;
property Scale1Y;
property Scale2X;
property Scale2Y;
{$IFDEF PAIDVERS}
property Scale3X;
property Scale3Y;
property Scale4X;
property Scale4Y;
{$ENDIF}
property StandardLayout;
property ShadowWidth;
property ShadowStyle;
property ShadowColor;
property ShadowBakColor;
{$IFDEF GE_LEV17}
property StyleElements;
{$ENDIF}
property UseDataOf;
property TextFont;
property TextFontStyle;
property TextBkStyle;
property TextBkColor;
property TextAlignment;
property OnClick;
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEndDrag;
property OnMouseMove;
property OnMouseDown;
property OnMouseUp;
property OnKeyDown;
property OnKeyUp;
property OnKeyPress;
property OnMouseMoveInChart;
property OnMouseEnter;
property OnMouseLeave;
property OnMouseWheel;
property OnMouseWheelUp;
property OnMouseWheelDown;
property OnRubberBand;
property OnSelectRect;
property OnZoomPan;
property OnScaleTickDrawn;
property OnBeforeCrossHairMove;
property OnBeforeTickLabel;
property OnBeforeRenderData;
property OnBeforeRenderChartItem;
property OnBeforeRenderText;
property OnDataRendered;
property OnScalesRendered;
property OnStartDrag;
property OnCrossHairMove;
property OnTextLabelMove;
{$IFNDEF ISCLX} // Kylix does not know OnCanResize
property OnCanResize;
property OnResize;
{$ENDIF}
end;
{$IFDEF GE_LEV29}
[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidWin64x)]
{$ENDIF}
TSmithChart = class(TCustomRChart)
private
FGridColLight : TColor;
FGridColDark : TColor;
FDiagramColor : TColor;
procedure SetGridColLight (value: TColor);
procedure SetGridColDark (value: TColor);
function GetCrossHair: TCrossHair;
function GetCrossHairPosX: double;
procedure SetCrossHairPosX (value: double);
function GetCrossHairPosY: double;
procedure SetCrossHairPosY (value: double);
procedure SetCrossHair (x: TCrossHair);
procedure SetDiagramColor (value: TColor);
function GetRangeLowX: double;
function GetRangeLowY: double;
function GetRangeHighX: double;
function GetRangeHighY: double;
procedure SetRangeLowX (value: double);
procedure SetRangeHighX (value: double);
procedure SetRangeLowY (value: double);
protected
procedure CreateWnd; override;
procedure Paint; override;
procedure AssignTo (Dest: TPersistent); override;
procedure InitGraf (cv: TCanvas; PosX, PosY, Wid, Hgt: integer); override;
public
procedure M2R (xin,yin: longint; var ReflReal,ReflImag: double);
procedure R2M (ReflReal,ReflImag: double; var xout,yout: longint);
procedure Assign(Source: TPersistent); override;
constructor Create(AOwner: TComponent); override;
function CalcReflectionReal (Resistance, Reactance: double): double;
function CalcReflectionImag (Resistance, Reactance: double): double;
function CalcResistance (ReflectionReal, ReflectionImag: double): double;
function CalcReactance (ReflectionReal, ReflectionImag: double): double;
procedure ClearGraf;
procedure ClearAnnotations; overload;
function ClearAnnotations (Layer: integer): integer; overload;
procedure CopyAnnoFrom (SrcChart: TCustomRChart;
ClassFilter: array of byte; AppendIt: boolean);
function CountAnnoByClass (ClList: array of byte): integer;
function CountAnnos (Tag: integer; TagMask: longword;
ItemClass: integer; ItemKind: TRcItem): integer;
procedure ShowGraf;
procedure ShowGrafNewOnly;
procedure MarkAt (x,y: double; mk: byte); overload;
procedure MarkAt (x,y: integer; mk: byte); overload;
procedure DrawTo (x,y: double); overload;
procedure DrawTo (x,y: integer); overload;
procedure DrawTo (x: integer; y: double); overload;
procedure DrawTo (x: double; y: integer); overload;
procedure MoveTo (x,y: double); overload;
procedure MoveTo (x,y: integer); overload;
procedure MoveTo (x: integer; y: double); overload;
procedure MoveTo (x: double; y: integer); overload;
property SuppressPaint;
procedure SetRange (xLo, yLo, xHi, yHi: extended);
property AnnoClassVisible;
property AnnoBelowChart;
property AnnoTextOnTop;
property AnnosVisible;
property AnnoMode;
procedure AutoRange (Margin: double); overload;
procedure AutoRange (Margin, MinRange: double); overload;
function AddTextLabel (PosX, PosY: double; TxtColor: TColor;
Txt: string; PropertyTemplate: integer): integer;
procedure HideAllTextLabels;
procedure ClearAllTextLabels;
procedure CopyToClipboard (BlkWhite: boolean); overload;
procedure CopyToClipboard (BlkWhite,
IncludeCrossHairs: boolean); overload;
procedure CopyToClipboardDAOnly (BlkWhite: boolean);overload;
procedure CopyToClipboardDAOnly (BlkWhite,
IncludeCrossHairs: boolean); overload;
procedure CopyToBitmap (ABitmap: TBitmap; BlkWhite: boolean); overload;
procedure CopyToBitmap (ABitmap: TBitmap; BlkWhite,
IncludeCrossHairs: boolean); overload;
procedure CopyToBitmapDAOnly (ABitmap: TBitmap;
BlkWhite: boolean); overload;
procedure CopyToBitmapDAOnly (ABitmap: TBitmap; BlkWhite,
IncludeCrossHairs: boolean); overload;
procedure CopyToBMP (FName: string; BlkWhite: boolean);
procedure CopyToOpenPrinter (var x,y: integer; ScaleF: double;
BlkWhite: boolean);
procedure PrintIt (ScaleF: double; BlkWhite: boolean);
procedure CenterChart;
property AnnoContainer;
property AnnoLongText;
property DataContainer;
property DataLongText;
property CrossHairPosX: double
read GetCrossHairPosX write SetCrossHairPosX;
property CrossHairPosY: double
read GetCrossHairPosY write SetCrossHairPosY;
procedure CrossHairSetPos (x,y: double);
procedure CrossHairSetup (chColor: TColor;
Mode: TCrossHMode; LineType: TPenStyle;
LineWidth: integer);
property DataTag;
property NumAnnos;
property NumItems;
procedure Line (x1,y1, x2, y2: double); overload;
procedure Line (x1,y1, x2, y2: integer); overload;
procedure Line (x1,y1: double; x2, y2: integer); overload;
procedure Line (x1,y1: integer; x2, y2: double); overload;
procedure Rectangle (x1,y1, x2, y2: double); overload;
procedure Rectangle (x1,y1, x2, y2: integer); overload;
procedure Rectangle (x1,y1: integer; x2, y2: double); overload;
procedure Rectangle (x1,y1: double; x2, y2: integer); overload;
procedure RectangleRelPix (centx,centy: double; dx, dy: integer);
procedure Ellipse (cx, cy, HorizAxLeng, VertAxLeng: double);
procedure GetTransformParams (var kx, dx, ky, dy: double);
procedure Text (refreal, refimag: double;
size: integer; txt: string); overload;
procedure Text (x,y: integer; size: integer; txt: string); overload;
procedure Text (refreal, refimag: double; size: integer; txt: string;
dx, dy: integer; Alignment: TAlignment); overload;
procedure Text (x: integer; refimag: double; size: integer;
txt: string); overload;
procedure Text (refreal: double; y: integer; size: integer;
txt: string); overload;
{$IFNDEF DOTNET}
procedure SaveData (FName: string);
function LoadData (FName: string; AppendIt: boolean): integer;
procedure SaveAnno (FName: string);
function LoadAnno (FName: string; AppendIt: boolean): integer;
{$ENDIF}
procedure RemoveAnnoItem (Index: longint);
procedure RemoveLastItem;
procedure RemoveFirstItem;
procedure RemoveItem (Index: longint);
function RemoveItemsByClass (ClassNumber: byte): longint;
function RemoveItemsByLayer (Layer: integer): longint;
procedure FindMinMax (RangeLoX, RangeLoY, RangeHiX, RangeHiY: double;
var MinX, MinY, MaxX, MaxY: double);
property ItemCount;
function SearchAnnoItem (StartIx, Tag: integer; TagMask: longword;
ItemClass: integer; ItemKind: TRcItem): integer;
function SearchDataItem (StartIx, Tag: integer; TagMask: longword;
ItemClass: integer; ItemKind: TRcItem): integer;
procedure SetTextLabel (Idx: integer; PosX, PosY: double;
TxtColor: TColor; Txt: string;
PropertyTemplate: integer);
property TextLabels;
function MarkItemsInWindow (ReflRealLow, ReflImagLow, ReflRealHigh,
ReflImagHigh: double; ItemID: TrcItem;
ClassNumber: byte): longint;
procedure MarkAllItems (ItemID: TrcItem; ClassNumber: byte);
property ClassVisible;
procedure NewColorOfClassItems (Newcol: TColor; ClassNumber: byte);
property MousePosX: double read FMousePosX;
property MousePosY: double read FMousePosY;
published
property Font;
property Align;
property AvoidDuplicateMarks;
property MinDupMarkDist;
property Visible;
property ShowHint;
property PopupMenu;
property Anchors;
property Constraints;
property MarginLeft;
property MarginRight;
property MarginTop;
property MarginBottom;
property AllocSize;
property AutoRedraw;
property ClassDefault;
property GridColorLight: TColor read FGridColLight write SetGridColLight;
property GridColorDark: TColor read FGridColDark write SetGridColDark;
property DataColor;
property PenStyle;
property FillColor;
property ChartColor;
property ChartFrameColor;
property WindColor;
property DiagramColor: TColor read FDiagramColor write SetDiagramColor;
property LineWidth;
property CrossHair: TCrossHair
read GetCrossHair write SetCrossHair;
property Caption;
property CaptionPosX;
property CaptionPosY;
property CaptionAlignment;
property CaptionAnchorHoriz;
property CaptionAnchorVert;
property CaptionTrim;
property RangeXLow: double read GetRangeLowX write SetRangeLowX;
property RangeXHigh: double read GetRangeHighX write SetRangeHighX;
property RangeYLow: double read GetRangeLowY write SetRangeLowY;
property RangeYHigh: double read GetRangeHighY;
property MouseAction;
property MouseCursorFixed;
property ShadowWidth;
property ShadowStyle;
property ShadowColor;
property ShadowBakColor;
{$IFDEF GE_LEV17}
(**) property StyleElements;
{$ENDIF}
property TextFont;
property TextFontStyle;
property TextBkStyle;
property TextBkColor;
property TextAlignment;
property TransparentItems;
property OnBeforeCrossHairMove;
property OnBeforeRenderChartItem;
property OnBeforeRenderText;
property OnBeforeRenderData;
property OnClick;
property OnDblClick;
property OnMouseMove;
property OnMouseDown;
property OnMouseUp;
property OnMouseMoveInChart;
property OnKeyDown;
property OnKeyUp;
property OnKeyPress;
property OnMouseEnter;
property OnMouseLeave;
property OnMouseWheel;
property OnMouseWheelUp;
property OnMouseWheelDown;
property OnRubberBand;
property OnScalesRendered;
property OnSelectRect;
property OnZoomPan;
property OnDataRendered;
property OnCrossHairMove;
property OnTextLabelMove;
{$IFNDEF ISCLX} // Kylix does not know OnCanResize
property OnCanResize;
property OnResize;
{$ENDIF}
end;
TRGB32 = packed record // needed to speed up contour plot drawing
B : Byte;
G : Byte;
R : Byte;
A : Byte;
end;
TRGB32Array = packed array[0..MaxInt div SizeOf(TRGB32)-1] of TRGB32;
PRGB32Array = ^TRGB32Array;
{$IFDEF GE_LEV29}
[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidWin64x)]
{$ENDIF}
TContourPlot = class(TCustomRChart)
private
FPlotMode : TContourPlotMode; // plotting mode (lines or areas)
FPivotMat : TMatrix; // matrix containing pivot values
FMaskMat : TByteMatrix; // matrix with pixel mask
FNumPivotX : integer; // number of IsoQuads along x axis
FNumPivotY : integer; // number of IsoQuads along y axis
FIsoLow : double; // z-value lowest isohypsis
FIsoHigh : double; // z-value highest isohypsis
FIsoDist : double; // distance between isohypses
FMaximum : double; // min. and max. of all rendered points
FMinimum : double;
FEnabled : boolean;
FPivotPreCalc : boolean;
FOnEstimateZVal : TEstimateZValEvent;
FOnProgress : TOnPercentDoneEvent;
FExtColScale : TColorScale; // external color scale
procedure SetAnnoClassVisib (cnum: byte; value: boolean);
procedure SetClassVisib (cnum: byte; value: boolean);
procedure SetIsoLow (value: double);
procedure SetIsoHigh (value: double);
procedure SetIsoDist (value: double);
procedure SetPlotMode (pm: TContourPlotMode);
procedure SetPivotRes (value: integer);
procedure SetPivotResX (value: integer);
procedure SetPivotResY (value: integer);
procedure SetChartFrameCol (value: TColor);
procedure SetChartColor (value: TColor);
procedure SetShadowWidth (value: integer);
procedure SetMarginRight (value: integer);
procedure SetMarginLeft (value: integer);
procedure SetMarginTop (value: integer);
procedure SetMarginBottom (value: integer);
function GetPivotRes: integer;
function GetCrossHair: TCrossHair;
procedure SetCrossHair (x: TCrossHair);
function GetPivotVal(ix, iy: integer): double;
function GetMaskVal(ix, iy: integer): byte;
procedure SetMaskVal(ix, iy: integer; Value: byte);
procedure RenderFromPivotPoints (bmp: TBitMap; PosX, PosY: integer);
procedure RenderLabels (cv: TCanvas; PosX, PosY: integer);
procedure ProcessZoomPan (Sender: TObject);
procedure ProcessResize (Sender: TObject);
procedure ResizePivotMatrix (nx, ny: integer);
procedure ChangedIsoColorsEvent (Sender: TObject);
procedure IsoQuadSL (GBuf: PRGB32Array; GBufLeng: longint;
GBufNSLines: integer;
PosX, PosY: integer; x1,y1,dx,dy, z1,z2,z3,z4: double;
ResX, ResY: word);
procedure IsoColQuadSL (GBuf: PRGB32Array; GBufLeng: longint;
GBufNSLines: integer;
PosX, PosY: integer; x1,y1: double; dx,dy: double;
z1,z2,z3,z4: double; ResX, ResY: word);
protected
procedure AssignTo (Dest: TPersistent); override;
procedure IsoColorsChanged;
procedure CreateWnd; override;
procedure ConstructDataBmp (bmp: TBitMap; PosX, PosY: integer;
BlkWhite: boolean; FirstItem: integer); override;
procedure Paint; override;
procedure CplotStyleChanged(Sender: TObject);
procedure SetSuppressPaint (supp: boolean); override;
procedure SetEnabled (state: boolean);
procedure FeedbackProgress (PercentDone: integer);
procedure IsoQuad (cv: TCanvas; PosX, PosY: integer;
x1,y1: double; dx,dy: double;
z1,z2,z3,z4: double; ResX, ResY: word);
procedure IsoColQuad (cv: TCanvas; PosX, PosY: integer;
x1,y1: double; dx,dy: double;
z1,z2,z3,z4: double; ResX, ResY: word);
public
IsoColors : TColorArray;
MaskPalette : TColorArray;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Assign(Source: TPersistent); override;
procedure M2R (xin,yin: longint; var xout,yout: double);
procedure R2M (xin,yin: double; var xout,yout: longint);
procedure SetRange (xLo, yLo, xHi, yHi: extended);
property SuppressPaint;
property AllowZoomPanToggle;
property AnnoContainer;
property AnnoLongText;
property DataContainer;
property DataLongText;
procedure DrawPlot;
property LineWidth;
procedure PrintIt (ScaleF: double; BlkWhite: boolean);
procedure HideAllTextLabels;
procedure ClearAnnotations;
procedure ClearAllTextLabels;
procedure CopyAnnoFrom (SrcChart: TCustomRChart;
ClassFilter: array of byte; AppendIt: boolean);
function CountAnnoByClass (ClList: array of byte): integer;
function CountAnnos (Tag: integer; TagMask: longword;
ItemClass: integer; ItemKind: TRcItem): integer;
property AnnoBelowChart;
property AnnoTextOnTop;
property AnnosVisible;
property AnnoMode;
property AnnoClassVisible [cnum:byte]: boolean
read GetAnnoClassVisib write SetAnnoClassVisib;
function FindNearestAnnoElem (mx, my: double; ItemID: TrcItem;
ClassNumber: byte; VisLayersOnly: boolean;
var Dist: double): longint;
function AddTextLabel (PosX, PosY: double; TxtColor: TColor;
Txt: string; PropertyTemplate: integer): integer;
procedure CalculatePivotPoints (PreCalcFlag: boolean);
property ClassVisible [cnum:byte]: boolean
read GetClassVisib write SetClassVisib;
procedure ClearMouseTrace;
procedure ClearPivotPoints (PreCalcFlag: boolean);
procedure ConfineZoomRange (xLo, yLo, xHi, yHi: double);
procedure CopyToBMP (FName: string; BlkWhite: boolean);
procedure CopyToBitmap (ABitmap: TBitmap; BlkWhite: boolean); overload;
procedure CopyToBitmap (ABitmap: TBitmap; BlkWhite,
IncludeCrossHairs: boolean); overload;
procedure CopyToBitmapDAOnly (ABitmap: TBitmap;
BlkWhite: boolean); overload;
procedure CopyToBitmapDAOnly (ABitmap: TBitmap; BlkWhite,
IncludeCrossHairs: boolean); overload;
procedure CopyToClipboard (BlkWhite: boolean); overload;
procedure CopyToClipboard (BlkWhite,
IncludeCrossHairs: boolean); overload;
procedure CopyToClipboardDAOnly (BlkWhite: boolean);overload;
procedure CopyToClipboardDAOnly (BlkWhite,
IncludeCrossHairs: boolean); overload;
procedure CopyToClipBoardWMF (BlkWhite: boolean);
procedure CrossHairSetPos (x,y: double);
property DataColor;
property DataTag;
property FillColor;
property PenStyle;
procedure Arc (cx,cy,HorizAxLeng,VertAxLeng,Angle1,Angle2: double);
procedure Arrow (x1,y1, x2,y2: double; HeadSize: integer); overload;
procedure Arrow (x1,y1: integer; x2,y2: double;
HeadSize: integer); overload;
procedure Arrow (x1,y1: double; x2,y2: integer;
HeadSize: integer); overload;
procedure Arrow (x1,y1, x2,y2: integer; HeadSize: integer); overload;
procedure Arrow (x1: integer; y1: double;
x2: integer; y2: double; HeadSize: integer); overload;
procedure Arrow (x1: double; y1: integer;
x2: double; y2: integer; HeadSize: integer); overload;
procedure Bar3D (llx, lly, urx, ury: double;
Depth: integer; Angle: integer);
procedure Cross (cx, cy, dx, dy: double); overload;
procedure Cross (cx, cy: double; dx, dy: integer); overload;
procedure Cross (cx, cy, dx, dy: integer); overload;
procedure CursorHoriz (y: double); overload;
procedure CursorHoriz (y: integer); overload;
procedure CursorVert (x: double); overload;
procedure CursorVert (x: integer); overload;
procedure DoubleArrow (x1,y1, x2,y2: double;
HeadSize: integer); overload;
procedure DoubleArrow (x1,y1: integer; x2,y2: double;
HeadSize: integer); overload;
procedure DoubleArrow (x1,y1: double; x2,y2: integer;
HeadSize: integer); overload;
procedure DoubleArrow (x1,y1, x2,y2: integer;
HeadSize: integer); overload;
procedure DoubleArrow (x1: integer; y1: double;
x2: integer; y2: double; HeadSize: integer); overload;
procedure DoubleArrow (x1: double; y1: integer;
x2: double; y2: integer; HeadSize: integer); overload;
procedure DrawTo (x,y: double); overload;
procedure DrawTo (x,y: integer); overload;
procedure DrawTo (x: integer; y: double); overload;
procedure DrawTo (x: double; y: integer); overload;
procedure DrawToRelPix (dx,dy: integer); overload;
procedure DrawToRelPix (x,y: double; dx,dy: integer); overload;
procedure Ellipse (cx, cy, HorizAxLeng, VertAxLeng: double);
procedure Line (x1,y1, x2, y2: double); overload;
procedure Line (x1,y1, x2, y2: integer); overload;
procedure Line (x1,y1: double; x2, y2: integer); overload;
procedure Line (x1,y1: integer; x2, y2: double); overload;
procedure LineOffset (x1,y1, x2, y2: double; dx, dy: integer);
function MarkItemsInWindow (xLo, YLo, XHi, YHi: double;
ItemID: TrcItem; ClassNumber: byte): longint;
procedure MarkAllItems (ItemID: TrcItem; ClassNumber: byte);
procedure MoveTo (x,y: double); overload;
procedure MoveTo (x,y: integer); overload;
procedure MoveTo (x: integer; y: double); overload;
procedure MoveTo (x: double; y: integer); overload;
procedure MoveToRelPix (dx,dy: integer);
procedure MarkAt (x,y: double; mk: byte); overload;
procedure MarkAt (x,y: integer; mk: byte); overload;
procedure MarkErrorBar (x,y: double; dlower, dupper: double;
Dir: TOrientation; mk: byte);
procedure Rectangle (x1,y1, x2, y2: double); overload;
procedure Rectangle (x1,y1, x2, y2: integer); overload;
procedure Rectangle (x1,y1: integer; x2, y2: double); overload;
procedure Rectangle (x1,y1: double; x2, y2: integer); overload;
procedure RectangleRelPix (centx, centy: double; dx, dy: integer);
procedure RectFrame (x1,y1, x2, y2: double; FrameStyle: TFrameStyle;
ShadowColor, HiLightColor: TColor); overload;
procedure RectFrame (x1,y1, x2, y2: integer; FrameStyle: TFrameStyle;
ShadowColor, HiLightColor: TColor); overload;
procedure RectFrame (x1,y1: integer; x2, y2: double;
FrameStyle: TFrameStyle;
ShadowColor, HiLightColor: TColor); overload;
procedure RectFrame (x1,y1: double; x2, y2: integer;
FrameStyle: TFrameStyle;
ShadowColor, HiLightColor: TColor); overload;
procedure RemoveAnnoItem (Index: longint);
property TransparentItems;
function DetectScale (CoordX, CoordY: integer): integer; overload;
function DetectScale (CoordX, CoordY, AssumedWidth,
AssumedHeight: integer): integer; overload;
procedure FillMask (value: byte);
procedure GetTransformParams (var kx, dx, ky, dy: double);
property InvalidDataBmp: boolean read FInvalidDataBmp;
property MaxPivot: double read FMaximum;
property MinPivot: double read FMinimum;
property Mask[ix, iy: integer]: byte
read GetMaskVal write SetMaskVal;
property MouseTrace[idx: longint]: TColoredPoint
read GetMTracePoint;
property NumMTracePoints: longint read FNumMTrace;
property NumAnnos;
property NumItems;
function PercentilePivots (prob: double): double; overload;
function PercentilePivots (prob: double;
UseMask: boolean): double; overload;
property PivotMat[ix, iy: integer]: double read GetPivotVal;
procedure ResetComp;
{$IFNDEF DOTNET}
procedure SaveData (FName: string);
function LoadData (FName: string; AppendIt: boolean): integer;
procedure SaveAnno (FName: string);
function LoadAnno (FName: string; AppendIt: boolean): integer;
{$ENDIF}
function SearchAnnoItem (StartIx, Tag: integer; TagMask: longword;
ItemClass: integer; ItemKind: TRcItem): integer;
function SearchDataItem (StartIx, Tag: integer; TagMask: longword;
ItemClass: integer; ItemKind: TRcItem): integer;
procedure SetIsoParams (iLow, iHigh, iDist: double);
procedure SetTextLabel (Idx: integer; PosX, PosY: double;
TxtColor: TColor; Txt: string;
PropertyTemplate: integer);
procedure Text (x,y: double; size: integer; txt: string); overload;
procedure Text (x,y: integer; size: integer; txt: string); overload;
procedure Text (x,y: double; size: integer; txt: string;
dx, dy: integer; Alignment: TAlignment); overload;
procedure Text (x: integer; y: double; size: integer;
txt: string); overload;
procedure Text (x: double; y: integer; size: integer;
txt: string); overload;
property TextLabels;
published
property Align;
property Anchors;
property Caption;
property CaptionPosX;
property CaptionPosY;
property CaptionAlignment;
property CaptionAnchorHoriz;
property CaptionAnchorVert;
property CaptionTrim;
property ChartColor: TColor read RcChartCol write SetChartColor;
property ChartFrameColor: TColor
read FChartFrameCol write SetChartFrameCol;
property ClassDefault;
property Constraints;
property CrossHair: TCrossHair read GetCrossHair write SetCrossHair;
property Enabled: boolean read FEnabled write SetEnabled;
property Font;
property IsoLow: double read FIsoLow write SetIsoLow;
property IsoHigh: double read FIsoHigh write SetIsoHigh;
property IsoDist: double read FIsoDist write SetIsoDist;
property Isometric;
property AttachedColorScale: TColorScale
read FExtColScale write FExtColScale;
property MarginLeft: integer read RcLRim write SetMarginLeft;
property MarginRight: integer read RcRRim write SetMarginRight;
property MarginTop: integer read RcTRim write SetMarginTop;
property MarginBottom: integer read RcBRim write SetMarginBottom;
property MouseAction;
property MouseCursorFixed;
property MouseTraceColor;
property MouseTraceInvert;
property NumPivotsX: integer read FNumPivotX write SetPivotResX;
property NumPivotsY: integer read FNumPivotY write SetPivotResY;
property PanGridDx;
property PanGridDy;
property PanGridOffsX;
property PanGridOffsY;
property PivotResolution: integer read GetPivotRes write SetPivotRes;
property ScaleX: TScalePropsHoriz
read GetScalePropsX1 write SetScalePropsX1;
property ScaleY: TScalePropsVert
read GetScalePropsY1 write SetScalePropsY1;
{$IFDEF GE_LEV17}
(**) property StyleElements;
{$ENDIF}
property PlotMode: TContourPlotMode read FPlotMode write SetPlotMode;
property PopupMenu;
property ShadowWidth: integer read F3DRim write SetShadowWidth;
property ShadowStyle;
property ShadowColor;
property ShadowBakColor;
property ShowHint;
property TextFont;
property TextFontStyle;
property TextBkStyle;
property TextBkColor;
property TextAlignment;
property Visible;
property WindColor;
property OnEstimateZVal: TEstimateZValEvent
read FOnEstimateZVal write FOnEstimateZVal;
property OnProgress: TOnPercentDoneEvent
read FOnProgress write FOnProgress;
property OnBeforeRenderData;
property OnBeforeRenderChartItem;
property OnBeforeRenderText;
property OnDataRendered;
property OnScalesRendered;
property OnZoomPan;
property OnClick;
property OnDblClick;
property OnMouseMove;
property OnMouseDown;
property OnMouseUp;
property OnRubberBand;
property OnScaleTickDrawn;
property OnSelectRect;
property OnBeforeCrossHairMove;
property OnCrossHairMove;
property OnMouseMoveInChart;
property OnTextLabelMove;
property OnCanResize;
property OnResize;
end;
{$IFDEF DEVELOPVERS}
{$I cxintf_quickchart.pas}
{$ENDIF}
function ItemDescription (ChartItem: TRcChartItem; Mode: integer): string;
|