📄 teeprocs.pas
字号:
property BevelInner;
property BevelOuter;
property BevelWidth;
{$IFDEF CLX}
property Bitmap;
{$ENDIF}
property BorderWidth;
property Color {$IFDEF CLX}default clBackground{$ENDIF};
{$IFNDEF CLX}
property DragCursor;
{$ENDIF}
property DragMode;
property Enabled;
property ParentColor;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property TabOrder;
property TabStop;
property Visible;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
{$IFDEF K3}
property OnMouseEnter;
property OnMouseLeave;
{$ELSE}
{$IFDEF D10}
property OnMouseEnter;
property OnMouseLeave;
{$ENDIF}
{$ENDIF}
property OnBeforePrint:TTeePrintEvent read FOnBeforePrint write FOnBeforePrint;
published
end;
TChartGradient=TTeeGradient;
TChartGradientClass=class of TChartGradient;
TPanningMode=(pmNone,pmHorizontal,pmVertical,pmBoth);
TTeeZoomPen=class(TChartPen) // do not seal (TeeTree)
private
Function IsColorStored:Boolean;
{$IFNDEF CLR}
protected
{$ELSE}
public
{$ENDIF}
DefaultColor : TColor;
published
property Color stored IsColorStored nodefault; // 5.03
end;
TTeeZoomBrush=class {$IFDEF CLR}sealed{$ENDIF}(TChartBrush)
published
property Color default clWhite;
property Style default bsClear;
end;
TTeeZoomDirection=(tzdHorizontal, tzdVertical, tzdBoth);
TTeeZoom=class {$IFDEF CLR}sealed{$ENDIF} (TZoomPanning)
private
FAllow : Boolean;
FAnimated : Boolean;
FAnimatedSteps : Integer;
FBrush : TTeeZoomBrush;
FDirection : TTeeZoomDirection;
FKeyShift : TShiftState;
FMinimumPixels : Integer;
FMouseButton : TMouseButton;
FPen : TTeeZoomPen;
FUpLeftZooms : Boolean;
Function GetBrush:TTeeZoomBrush;
Function GetPen:TTeeZoomPen;
Procedure SetBrush(Value:TTeeZoomBrush);
Procedure SetPen(Value:TTeeZoomPen);
public
Constructor Create;
Destructor Destroy; override;
Procedure Assign(Source:TPersistent); override;
published
property Allow:Boolean read FAllow write FAllow default True;
property Animated:Boolean read FAnimated write FAnimated default False;
property AnimatedSteps:Integer read FAnimatedSteps write FAnimatedSteps default 8;
property Brush:TTeeZoomBrush read GetBrush write SetBrush;
property Direction:TTeeZoomDirection read FDirection write FDirection default tzdBoth;
property KeyShift:TShiftState read FKeyShift write FKeyShift default [];
property MinimumPixels:Integer read FMinimumPixels write FMinimumPixels default 16;
property MouseButton:TMouseButton read FMouseButton write FMouseButton default mbLeft;
property Pen:TTeeZoomPen read GetPen write SetPen;
property UpLeftZooms:Boolean read FUpLeftZooms write FUpLeftZooms default False;
end;
TCustomTeePanelExtended=class;
TTeeBackImageMode=(pbmStretch,pbmTile,pbmCenter,pbmCustom); // 7.0
TBackImage=class(TTeePicture) // 8.0
private
FInside : Boolean;
FLeft : Integer;
FMode : TTeeBackImageMode;
FTop : Integer;
procedure SetInside(Const Value:Boolean);
procedure SetLeft(Value:Integer);
procedure SetMode(Const Value:TTeeBackImageMode);
procedure SetTop(Value:Integer);
public
Constructor Create;
procedure Assign(Source:TPersistent); override;
procedure Draw(Panel:TCustomTeePanelExtended; Rect:TRect; Z:Integer);
published
property Inside:Boolean read FInside write SetInside default False;
property Left:Integer read FLeft write SetLeft default 0;
property Mode:TTeeBackImageMode read FMode write SetMode default pbmStretch;
property Top:Integer read FTop write SetTop default 0;
end;
TCustomTeePanelExtended=class(TCustomTeePanel)
private
FAllowPanning : TPanningMode;
FGradient : TChartGradient;
FZoom : TTeeZoom;
FZoomed : Boolean;
{ for compatibility with Tee4 }
Function GetAllowZoom:Boolean;
Function GetAnimatedZoom:Boolean;
Function GetAnimatedZoomSteps:Integer;
Function GetBackImage:TBackImage;
Function GetBackImageInside:Boolean;
Function GetBackImageMode:TTeeBackImageMode;
Function GetBackImageTransp:Boolean;
Function GetGradient:TChartGradient;
procedure PaintBack(const ARect:TRect; AColor:TColor;
BorderRound:Integer=0);
procedure ReadAnimatedZoomSteps(Reader: TReader);
procedure ReadAnimatedZoom(Reader: TReader);
procedure ReadAllowZoom(Reader: TReader);
procedure ReadPrintMargins(Reader: TReader);
procedure SavePrintMargins(Writer: TWriter);
Procedure SetAllowZoom(Value:Boolean);
Procedure SetAnimatedZoom(Value:Boolean);
Procedure SetAnimatedZoomSteps(Value:Integer);
procedure SetBackImage(const Value:TBackImage);
procedure SetBackImageInside(Const Value:Boolean);
procedure SetBackImageMode(Const Value:TTeeBackImageMode);
procedure SetBackImageTransp(Const Value:Boolean);
Procedure SetGradient(Value:TChartGradient);
Procedure SetZoom(Value:TTeeZoom);
protected
FBackImage : TBackImage;
FOnAfterDraw : TNotifyEvent;
FOnScroll : TNotifyEvent;
FOnUndoZoom : TNotifyEvent;
FOnZoom : TNotifyEvent;
Procedure DefineProperties(Filer:TFiler); override;
procedure DrawBitmap(Rect:TRect; Z:Integer);
procedure FillPanelRect(Const Rect:TRect); virtual;
{$IFNDEF CLR}
{$IFNDEF CLX}
function GetPalette: HPALETTE; override; { override the method }
{$ENDIF}
{$ENDIF}
procedure PanelPaint(Const UserRect:TRect); virtual;
public
Constructor Create(AOwner:TComponent); override;
Destructor Destroy; override;
Procedure Assign(Source:TPersistent); override;
Procedure DrawZoomRectangle;
function HasBackImage:Boolean; // Returns True when has BackImage.Graphic
procedure UndoZoom; dynamic;
property Zoomed:Boolean read FZoomed write FZoomed;
property AllowPanning:TPanningMode read FAllowPanning
write FAllowPanning default pmBoth;
{ for compatibility with Tee4 }
property AllowZoom:Boolean read GetAllowZoom write SetAllowZoom default True;
property AnimatedZoom:Boolean read GetAnimatedZoom
write SetAnimatedZoom default False;
property AnimatedZoomSteps:Integer read GetAnimatedZoomSteps
write SetAnimatedZoomSteps default 8;
{}
property BackImage:TBackImage read GetBackImage write SetBackImage;
property BackImageInside:Boolean read GetBackImageInside
write SetBackImageInside default False;
property BackImageMode:TTeeBackImageMode read GetBackImageMode
write SetBackImageMode
default pbmStretch;
property BackImageTransp:Boolean read GetBackImageTransp
write SetBackImageTransp default False;
property Gradient:TChartGradient read GetGradient write SetGradient;
property Zoom:TTeeZoom read FZoom write SetZoom;
{ events }
property OnAfterDraw:TNotifyEvent read FOnAfterDraw write FOnAfterDraw;
property OnScroll:TNotifyEvent read FOnScroll write FOnScroll;
property OnUndoZoom:TNotifyEvent read FOnUndoZoom write FOnUndoZoom;
property OnZoom:TNotifyEvent read FOnZoom write FOnZoom;
end;
TChartBrushClass=class of TChartBrush;
TTeeCustomShapeBrushPen=class(TPersistent)
private
FBrush : TChartBrush;
FParent : TCustomTeePanel;
FPen : TChartPen;
FVisible : Boolean;
Procedure SetBrush(Value:TChartBrush);
Procedure SetPen(Value:TChartPen);
Procedure SetVisible(Value:Boolean);
protected
Procedure CanvasChanged(Sender:TObject);
Function GetBrushClass:TChartBrushClass; dynamic;
Procedure SetParent(Value:TCustomTeePanel); virtual;
public
Constructor Create;
Destructor Destroy; override;
Procedure Assign(Source:TPersistent); override;
Procedure Show; {$IFDEF D9}inline;{$ENDIF}
Procedure Hide; {$IFDEF D9}inline;{$ENDIF}
Procedure Repaint; {$IFDEF D9}inline;{$ENDIF}
property Brush:TChartBrush read FBrush write SetBrush;
property Frame:TChartPen read FPen write SetPen; // alias obsolete
property ParentChart:TCustomTeePanel read FParent write SetParent;
property Pen:TChartPen read FPen write SetPen;
property Visible:Boolean read FVisible write SetVisible;
end;
TChartObjectShapeStyle=(fosRectangle,fosRoundRectangle,fosEllipse);
TTextFormat=(ttfNormal, ttfHtml);
TTeeCustomShape=class(TTeeCustomShapeBrushPen)
private
FBevel : TPanelBevel;
FBevelWidth : TBevelWidth;
FColor : TColor;
FFont : TTeeFont;
FRoundSize : Integer;
FShadow : TTeeShadow;
FShapeStyle : TChartObjectShapeStyle;
FTextFormat : TTextFormat;
FTransparent : Boolean;
Function GetGradient:TChartGradient;
Function GetHeight:Integer;
Function GetWidth:Integer;
Function GetPicture:TBackImage;
Function GetShadowColor:TColor; // obsolete
Function GetShadowSize:Integer; // obsolete
Function IsTranspStored:Boolean;
procedure ReadShadowColor(Reader: TReader); // obsolete
procedure ReadShadowSize(Reader: TReader); // obsolete
Procedure PictureChanged(Sender:TObject);
Procedure SetBevel(Value:TPanelBevel);
procedure SetBevelWidth(Value: TBevelWidth);
Procedure SetColor(Value:TColor);
Procedure SetFont(Value:TTeeFont);
procedure SetGradient(Value:TChartGradient);
procedure SetHeight(Value:Integer);
Procedure SetPicture(Value:TBackImage);
procedure SetRoundSize(Value:Integer);
Procedure SetShadow(Value:TTeeShadow);
Procedure SetShadowColor(Value:TColor); // obsolete
Procedure SetShadowSize(Value:Integer); // obsolete
Procedure SetShapeStyle(Value:TChartObjectShapeStyle);
procedure SetTextFormat(Value:TTextFormat);
procedure SetTransparency(Value:TTeeTransparency);
procedure SetTransparent(Value:Boolean);
procedure SetWidth(Value:Integer);
protected
{$IFNDEF CLR}
DefaultTransparent : Boolean;
{$ENDIF}
FGradient : TChartGradient;
FPicture : TBackImage;
FTransparency : TTeeTransparency;
Procedure DefineProperties(Filer:TFiler); override;
Function GetGradientClass:TChartGradientClass; dynamic;
procedure InitShadow(AShadow:TTeeShadow); dynamic;
property Transparency:TTeeTransparency read FTransparency
write SetTransparency default 0;
public
{$IFDEF CLR}
DefaultTransparent : Boolean; // to avoid .Net typecast
{$ENDIF}
// Do not make this a property (it can't be accessed ie: ShapeBounds.Left:=123)
ShapeBounds : TRect;
Constructor Create(AOwner: TCustomTeePanel); overload; virtual;
Destructor Destroy; override;
Procedure Assign(Source:TPersistent); override;
Procedure Draw;
Procedure DrawRectRotated(Rect:TRect; Angle:Integer=0; AZ:Integer=0); overload;
Procedure DrawRectRotated(Panel:TCustomTeePanel; Rect:TRect;
Angle:Integer=0; AZ:Integer=0); overload;
// compatibility with TeeChart v5 (obsolete)
property ShadowColor:TColor read GetShadowColor write SetShadowColor default clBlack;
// {$IFDEF D11}deprecated 'Please use Shadow.Color property.';{$ENDIF}
property ShadowSize:Integer read GetShadowSize write SetShadowSize default 3;
// {$IFDEF D11}deprecated 'Please use Shadow.Size property.';{$ENDIF}
// public properties
property Height:Integer read GetHeight write SetHeight;
property Width:Integer read GetWidth write SetWidth;
// to be published
property Bevel:TPanelBevel read FBevel write SetBevel default bvNone;
property BevelWidth:TBevelWidth read FBevelWidth write SetBevelWidth default 2;
property Color:TColor read FColor write SetColor default clWhite;
property Font:TTeeFont read FFont write SetFont;
property Gradient:TChartGradient read GetGradient write SetGradient;
property Picture:TBackImage read GetPicture write SetPicture;
property RoundSize:Integer read FRoundSize write SetRoundSize default 16;
property Shadow:TTeeShadow read FShadow write SetShadow;
property ShapeStyle:TChartObjectShapeStyle read FShapeStyle
write SetShapeStyle default fosRectangle;
property TextFormat:TTextFormat read FTextFormat write SetTextFormat default ttfNormal;
property Transparent:Boolean read FTransparent write SetTransparent stored IsTranspStored;
end;
TTeeShape=class(TTeeCustomShape)
public
property Transparency;
published
property Bevel;
property BevelWidth;
property Color;
property Font;
property Gradient;
property Picture;
property RoundSize;
property Shadow;
property ShapeStyle;
property Transparent;
property Visible;
end;
TeeString256=Array[0..255] of Char;
// Used at TeExport, TeeStore and TeeTree export dialog.
TTeeExportData=class(TPersistent)
public
Function AsString:String; virtual; // abstract;
Procedure CopyToClipboard; dynamic;
Procedure SaveToFile(Const FileName:String); dynamic;
Procedure SaveToStream(AStream:TStream); dynamic;
end;
Function TeeStr(const Num:Integer):String; // same as IntToStr but a bit faster
{ returns the appropiate string date or time format according to "step" }
Function DateTimeDefaultFormat(Const AStep:Double):String;
{ returns the number of days of month-year }
Function DaysInMonth(Year,Month:Word):Word;
{ Given a "step", return the corresponding set element }
Function FindDateTimeStep(Const StepValue:Double):TDateTimeStep;
{ Returns the next "step" in ascending order. (eg: TwoDays follows OneDay }
Function NextDateTimeStep(Const AStep:Double):Double;
{ Returns True if point T is over line: P --> Q }
Function PointInLine(Const P:TPoint; const px,py,qx,qy:Integer):Boolean; overload;
Function PointInLine(Const P,FromPoint,ToPoint:TPoint):Boolean; overload;
{ Returns True if point T is over (more or less "Tolerance" pixels)
line: P --> Q }
Function PointInLine(const P,FromPoint,ToPoint:TPoint; const TolerancePixels:Integer):Boolean; overload; // obsolete;
Function PointInLine(const P:TPoint; const px,py,qx,qy,TolerancePixels:Integer):Boolean; overload;
Function PointInLineTolerance(Const P:TPoint;
Const px,py,qx,qy,TolerancePixels:Integer):Boolean;
{$IFDEF D11}deprecated 'Please use PointInLine function.';{$ENDIF}
{ Returns True if point P is inside Poly polygon }
Function PointInPolygon(Const P:TPoint; Const Poly:Array of TPoint):Boolean;
{ Returns True if point P is inside the triangle formed with P0,P1 and P2 }
Function PointInTriangle(Const P,P0,P1,P2:TPoint):Boolean; overload; {$IFDEF D9}inline;{$ENDIF}
{ Returns True if point P is inside the vert triangle of x0y0, midxY1, x1y0 }
Function PointInTriangle(Const P:TPoint; X0,X1,Y0,Y1:Integer):Boolean; overload;
{ Returns True if point P is inside the horiz triangle of x0y0, x1midY, x0y0 }
Function PointInHorizTriangle(Const P:TPoint; Y0,Y1,X0,X1:Integer):Boolean;
{ Returns True if point P is inside the ellipse bounded by Rect }
Function PointInEllipse(Const P:TPoint; Const Rect:TRect):Boolean; overload;
Function PointInEllipse(Const P:TPoint; Left,Top,Right,Bottom:Integer):Boolean; overload;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -