The SDL Component Suite is an industry leading collection of components supporting scientific and engineering computing. Please visit the SDL Web site for more information.... |
Home ChartPack Scale Interface of SDL_Scale | |
See also: Using TScale | |
Interface of SDL_Scale |
|
const {$IFDEF PAIDVERS} SDLVersionInfo = 'scale_r1200_full'; IsLightEd = false; {$ELSE} SDLVersionInfo = 'scale_r1200_lighted'; IsLightEd = true; {$ENDIF} Release = 1200; type TScaleTickDrawnEvent = procedure (Sender: TObject; Canvas: TCanvas; ScaleType: TScaleType; CurrentTickPos: double; ChartX, ChartY: integer) of object; TBeforeTickLabelEvent = procedure (Sender: TObject; ScaleType: TScaleType; CurrentTickPos: double; var TickLabel: string) of object; TScaleRenderedEvent = procedure (Sender: TObject; Canvas: TCanvas) of object; TScaleUnitAnchor = (uaSclTopLft, uaSclCenter, uaSclBotRgt); TScale = class (TCustomControl) //(TGraphicControl) private FFrameStyle : TFrameStyle; { style of frame } FColorFG : TColor; FColorBG : TColor; { color of label background } FColBlackLine : TColor; { colors to draw the frame } FColGrayLine : TColor; { -"- } FColWhiteLine : TColor; { -"- } FColorScheme : TColorScheme; { color scheme of frames } FOnScaleTickDrawn : TScaleTickDrawnEvent; FOnBeforeTickLabel: TBeforeTickLabelEvent; FOnZoomPan : TZoomPanEvent; FAxLog : boolean; { TRUE if axis is logarithmic } FTransf_k : double; FTransf_d : double; FRangeHigh : double; FRangeLow : double; FShortTicks : boolean; FTickCount : integer; FNumTicks : integer; FDecPlaces : integer; FNotYetLoaded : boolean; // flag to prevent problems with // log. scales during component loading FDrawBaseLine : boolean; FTransparent : boolean; FLabelType : TFigType; FDTFormat : TDTLabel; FMarginTop : integer; FMarginBottom : integer; FMarginRight : integer; FMarginLeft : integer; FIsHelper : boolean; FLblPosX : integer; FLblPosY : integer; FLblAlign : TAlignment; FLblAnchor : TScaleUnitAnchor; FMouseAction : TMouseActMode; FMAnchorX : integer; FMAnchorY : integer; FMAnchorWorldLow : double; FMAnchorWorldHigh : double; FLButtonWasDown : boolean; FUserTicktext : string; FScaleInscript : string; FScaleTickPos : array of double; FUnitLabel : string; FForeignCv : TCanvas; FForCvPosX : integer; FForCvPosY : integer; FScaleType : TScaleType; FOnBeforeSclRend : TScaleRenderedEvent; FOnAfterSclRend : TScaleRenderedEvent; FSuppressPaint : boolean; { TRUE: suppress all paint calls } procedure AdjustScalePars; function GetScaleCenter: double; function GetTickPos (ix: integer): double; procedure SetColorBG (Value: TColor); procedure SetColorFG (Value: TColor); procedure SetColorScheme (Value: TColorScheme); procedure SetFrameStyle (value: TFrameStyle); procedure SetScaleType (Value: TScaleType); procedure SetUnitLabel (Value: string); procedure SetCaptAlign (al: TAlignment); procedure SetCaptAnchor (ca: TScaleUnitAnchor); procedure SetIsHelper (value: boolean); procedure SetMarginTop (Value: integer); procedure SetMarginBottom (Value: integer); procedure SetMarginLeft (Value: integer); procedure SetMarginRight (Value: integer); procedure SetRangeHigh (Value: double); procedure SetRangeLow (Value: double); procedure SetDecPlaces (Value: integer); procedure SetShowBaseLine (Value: boolean); procedure SetTransparent (Value: boolean); procedure SetUserTickText (txt: String); procedure SetAxLinLog (Value: boolean); procedure SetLabelType (Value: TFigType); procedure SetShortTicks (st: boolean); procedure SetScaleInscript (x: string); procedure SetDTFormat (value: TDTLabel); procedure SetNumTicks (d: integer); procedure SetUnitLabelPosX (value: integer); procedure SetUnitLabelPosY (value: integer); procedure SetSuppressPaint (supp: boolean); procedure SetForCvPosX (value: integer); procedure SetForCvPosY (value: integer); protected function AddScaleInscription (Instring: string; Inscr: string): string; procedure AssignTo (Dest: TPersistent); override; procedure CreateWnd; override; procedure DblClick; override; procedure DrawYScale (cv: TCanvas; XPos: integer); procedure DrawXScale (cv: TCanvas; YPos: integer); function ExtractUserText (TickText: string; ix: integer): string; procedure Loaded; override; function M2R (xin: longint): double; procedure MouseUp (Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override; procedure MouseMove (Shift: TShiftState; X,Y: integer); override; procedure Paint; override; function R2M (xin: double): longint; procedure TriggerPaint; public procedure Assign(Source: TPersistent); override; constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Changed (Sender: TObject); property Center: double read GetScaleCenter; property Enabled; property IsHelperComponent: boolean read FIsHelper write SetIsHelper; property TickPos [ix: integer]: double read GetTickPos; procedure UseForeignCanvas (ForeignCv: TCanvas; x, y: integer); procedure ForcePaint; property ForeignCanvasPosX: integer read FForCvPosX write SetForCVPosX; property ForeignCanvasPosY: integer read FForCvPosY write SetForCVPosY; function ConvertToPixelCoords (Value: double): integer; function ConvertPixelToScale (PixelCoord: integer): double; procedure ResetComp; procedure SetBounds (ALeft, ATop, AWidth, AHeight: Integer); override; procedure SetRange (LowVal, HighVal: double); property SuppressPaint: boolean read FSuppressPaint write SetSuppressPaint; published property Align; property Anchors; property Caption: string read FUnitLabel write SetUnitLabel; property CaptionPosX: integer read FLblPosX write SetUnitLabelPosX; property CaptionPosY: integer read FLblPosY write SetUnitLabelPosY; property CaptionAlignment: TAlignment read FLblAlign write SetCaptAlign; property CaptionAnchor: TScaleUnitAnchor read FLblAnchor write SetCaptAnchor; property ColorBackGnd: TColor read FColorBG write SetColorBG; property ColorScale: TColor read FColorFG write SetColorFG; property ColorScheme: TColorScheme read FColorScheme write SetColorScheme; property DateFormat: TDTLabel read FDTFormat write SetDTFormat; property DecPlaces: integer read FDecPlaces write SetDecPlaces; property Font; property FrameStyle: TFrameStyle read FFrameStyle write SetFrameStyle; property LabelType: TFigType read FLabelType write SetLabelType; property Logarithmic: boolean read FAxLog write SetAxLinLog; property MarginTop: integer read FMarginTop write SetMarginTop; property MarginBottom: integer read FMarginBottom write SetMarginBottom; property MarginLeft: integer read FMarginLeft write SetMarginLeft; property MarginRight: integer read FMarginRight write SetMarginRight; property MinTicks: integer read FNumTicks write SetNumTicks; property MouseAction: TMouseActMode read FMouseAction write FMouseAction; property NumTicks: integer read FTickCount; property ParentFont; property ParentShowHint; property PopupMenu; property RangeLow: double read FRangeLow write SetRangeLow; property RangeHigh: double read FRangeHigh write SetRangeHigh; property ShortTicks: boolean read FShortTicks write SetShortTicks; property ShowBaseLine: boolean read FDrawBaseLine write SetShowBaseLine; property ShowHint; property ScaleInscript: string read FScaleInscript write SetScaleInscript; property ScaleType: TScaleType read FScaleType write SetScaleType; {$IFDEF GE_LEV17} (**) property StyleElements; {$ENDIF} property Transparent: boolean read FTransparent write SetTransparent; property UserTickText: string read FUserTickText write SetUserTickText; property Visible; property OnClick; property OnDblClick; property OnMouseMove; property OnMouseDown; property OnMouseUp; {$IFDEF GE_LEV5} // CBuilder/Delphi 3/4 do not know about property OnContextPopup; {$ENDIF} property OnZoomPan: TZoomPanEvent read FOnZoomPan write FOnZoomPan; property OnScaleTickDrawn: TScaleTickDrawnEvent read FOnScaleTickDrawn write FOnScaleTickDrawn; property OnBeforeTickLabel: TBeforeTickLabelEvent read FOnBeforeTickLabel write FOnBeforeTickLabel; property OnAfterScaleRendered: TScaleRenderedEvent read FOnAfterSclRend write FOnAfterSclRend; property OnBeforeScaleRendered: TScaleRenderedEvent read FOnBeforeSclRend write FOnBeforeSclRend; end; function Rescale (MX, MY, MAnchorX, MAnchorY, Width, Height, MarginLeft, MarginRight, MarginTop, MarginBottom: integer; MAnchorWorldLow, MAnchorWorldHigh: double; MAction: TMouseActMode; SclType: TScaleType; LogAxis: boolean; RngLow, RngHigh: double; var NewLow, NewHigh: double): boolean;
|