const
{$IFDEF PAIDVERS}
SDLVersionInfo = 'boxplot_r1210_full';
IsLightEd = false;
{$ELSE}
SDLVersionInfo = 'boxplot_r1210_lighted';
IsLightEd = true;
{$ENDIF}
Release = 1210;
type
{$IFDEF GE_LEV29}
[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidWin64x)]
{$ENDIF}
TBoxPlotLabel = class (TCustomTextLabel)
private
FLabelPos : integer;
procedure SetFLabelPos (lp: integer);
public
constructor Create;
published
property Position: integer read FLabelPos write SetFLabelPos;
property ColorBkg;
property ColorBorder;
property ColorShadow;
property ShadowDx;
property ShadowDy;
property Transparent;
property Font;
property Mode;
property Visible;
property OnChange;
end;
TBoxPlotOrientation = (bpltHorizontal, bpltVertical);
TBoxPlotGridStyle = (bpgsNone, bpgsLines, bpgsDotLines);
TOnBeforeBoxDrawEvent = procedure (Sender: TObject; Column: integer;
var ColorLines, ColorBody, ColorMinMax,
Color90Perc, ColorMean,
ColorMedian: TColor) of object;
{$IFDEF GE_LEV29}
[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidWin64x)]
{$ENDIF}
TBoxPlot = class(TCustomRChart)
private
FOrientation : TBoxPlotOrientation;
FBPlotWidth : double;
FMinis : TVector;
FMaxis : TVector;
FMinMark : byte;
FMaxMark : byte;
FMeanMark : byte;
FMedianMark : byte;
FPerc90Mark : byte;
FQuarts : TMatrix;
F90Percentils: TMatrix;
FLabels : TBoxPlotLabel;
FMeans : TVector;
FColorBody : TColor;
FColorLines : TColor;
FColorMedian : TColor;
FColorMean : TColor;
FColor90Perc : TColor;
FColorMinMax : TColor;
FShow90Perc : boolean;
FShowMedian : boolean;
FShowMean : boolean;
FShowMinMax : boolean;
FGridStyle : TBoxPlotGridStyle;
FOnBeforeBoxDraw : TOnBeforeBoxDrawEvent;
FExtMatAssigned : boolean;
procedure CommitChangedData;
procedure SetColorLines (col: TColor);
procedure SetColorMedian (col: TColor);
procedure SetColorMean (col: TColor);
procedure SetColor90Perc (col: TColor);
procedure SetColorMinMax (col: TColor);
procedure SetColorBody (col: TColor);
procedure SetSuppressPaint (supp: boolean);
procedure SetGridStyle (gs: TBoxPlotGridStyle);
procedure SetBoxWidth (wid: double);
procedure SetFMinMark (mm: byte);
procedure SetFMaxMark (mm: byte);
procedure SetFMeanMark (mm: byte);
procedure SetFMedianMark (mm: byte);
procedure SetFPerc90Mark (mm: byte);
procedure SetOrientation (orient: TBoxPlotOrientation);
procedure SetShow90Perc (v: boolean);
procedure SetShowMinMax (v: boolean);
procedure SetShowMean (v: boolean);
procedure SetShowMedian (v: boolean);
procedure SetFLabels (v: TBoxPlotLabel);
procedure CreateChart;
protected
procedure Paint; override;
procedure DataChanged(Sender: TObject);
procedure CreateWnd; override;
procedure TriggerBoxPlotColorsEvent (Column: integer; var ColorLines,
ColorBody, ColorMinMax, Color90Perc, ColorMean,
ColorMedian: TColor);
public
Data: TDataTable;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property SuppressPaint: boolean
read FSuppressPaint write SetSuppressPaint;
procedure ConfineZoomRange (xLo, yLo, xHi, yHi: double);
procedure SetBounds (ALeft, ATop, AWidth, AHeight: Integer); override;
procedure AssignAnotherDataTable (DTab: TDataTable);
procedure AutoRange (Margin: double);
procedure CopyToBitmap (ABitmap: TBitmap; BlkWhite: boolean);
procedure CopyToBMP (FName: string; BlkWhite: boolean);
procedure CopyToClipboard (BlkWhite: boolean);
{$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 SaveDataASC (FName: string);
procedure SetRange (xLo, yLo, xHi, yHi: extended);
property MousePosX;
property MousePosY;
procedure Update;
published
property ColorBody: TColor read FColorBody write SetColorBody;
property ColorLines: TColor read FColorLines write SetColorLines;
property ColorMedian: TColor read FColorMedian write SetColorMedian;
property ColorMean: TColor read FColorMean write SetColorMean;
property Color90Perc: TColor read FColor90Perc write SetColor90Perc;
property ColorMinMax: TColor read FColorMinMax write SetColorMinMax;
property Show90Perc: boolean read FShow90Perc write SetShow90Perc;
property ShowMean: boolean read FShowMean write SetShowMean;
property ShowMedian: boolean read FShowMedian write SetShowMedian;
property ShowMinMax: boolean read FShowMinMax write SetShowMinMax;
property ChartColor;
property BoxWidth: double read FBPlotWidth write SetBoxWidth;
property WindColor;
property GridColor;
property ChartFrameColor;
property GridStyle: TBoxPlotGridStyle read FGridStyle write SetGridStyle;
property Font;
property Align;
property Visible;
property ShowHint;
property PopupMenu;
property Anchors;
property Constraints;
{$IFNDEF ISCLX}
property DragKind;
property DragCursor;
property DragMode;
{$ENDIF}
property MarginLeft;
property MarginRight;
property MarginTop;
property MarginBottom;
property Orientation: TBoxPlotOrientation
read FOrientation write SetOrientation;
property SymbolMin: byte read FMinMark write SetFMinMark;
property SymbolMax: byte read FMaxMark write SetFMaxMark;
property SymbolMean: byte read FMeanMark write SetFMeanMark;
property SymbolMedian: byte read FMedianMark write SetFMedianMark;
property Symbol90Perc: byte read FPerc90Mark write SetFPerc90Mark;
property Caption;
property CaptionPosX;
property CaptionPosY;
property CaptionAlignment;
property CaptionAnchorHoriz;
property CaptionAnchorVert;
property CrossHair1;
property MouseAction;
property MouseCursorFixed;
property Scale1X;
property Scale1Y;
property ShadowWidth;
property ShadowStyle;
property ShadowColor;
property ShadowBakColor;
{$IFDEF GE_LEV17}
property StyleElements;
{$ENDIF}
property Labels: TBoxPlotLabel read FLabels write SetFLabels;
property OnBeforeBoxDraw: TOnBeforeBoxDrawEvent
read FOnBeforeBoxDraw write FOnBeforeBoxDraw;
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 OnZoomPan;
property OnBeforeRenderData;
property OnDataRendered;
property OnScalesRendered;
property OnStartDrag;
property OnCrossHairMove;
property OnTextLabelMove;
{$IFNDEF ISCLX} // Kylix does not know OnCanResize
property OnCanResize;
property OnResize;
{$ENDIF}
end;
|