亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? series.pas

?? 第三方控件:PaintGrid.pas 網格型儀表控件源文件 Mymeter.pas 圓型儀表控件源文件 Project1是這兩個控件的使用范例。 該
?? PAS
?? 第 1 頁 / 共 5 頁
字號:

  TPieAngles=Array of TPieAngle;

  TSliceValueList=class(TList)
  private
    Procedure Put(Index,Value:Integer);
    Function Get(Index:Integer):Integer;
  protected
    OwnerSeries : TChartSeries;
  public
    {$IFNDEF D6}
    procedure Assign(Source:TList);
    {$ENDIF}
    property Value[Index:Integer]:Integer read Get write Put; default;
  end;

  TPieOtherStyle=(poNone, poBelowPercent, poBelowValue);

  TPieOtherSlice=class(TPersistent)
  private
    FColor    : TColor;
    FLegend   : TChartLegend;
    FStyle    : TPieOtherStyle;
    FText     : String;
    FValue    : Double;
    FOwner    : TChartSeries;

    function GetLegend: TChartLegend;
    Function GetText:String;
    Function IsTextStored:Boolean;
    procedure SetColor(Value:TColor);
    procedure SetLegend(const Value: TChartLegend);
    procedure SetStyle(Value:TPieOtherStyle);
    procedure SetText(Const Value:String);
    procedure SetValue(Const Value:Double);
  public
    Constructor Create(AOwner:TChartSeries);
    Destructor Destroy; override;

    Procedure Assign(Source:TPersistent); override;
  published
    property Color:TColor read FColor write SetColor default clTeeColor;
    property Legend:TChartLegend read GetLegend write SetLegend;
    property Style:TPieOtherStyle read FStyle write SetStyle default poNone;
    property Text:String read GetText write SetText stored IsTextStored;
    property Value:Double read FValue write SetValue;
  end;

  TPieShadow=class(TTeeShadow) { 5.02 }
  published
    property Color default Tee_PieShadowColor;
  end;

  TMultiPie=(mpAutomatic, mpDisabled);

  TPieSeries=class(TCircledSeries)
  private
    FAngleSize        : Integer;
    FAutoMarkPosition : Boolean;
    FDark3D           : Boolean;
    FDarkPen          : Integer;
    FDonutPercent     : Integer;
    FExplodedSlice    : TSliceValueList; { <-- Exploded slice % storage }
    FExplodeBiggest   : Integer;
    FMultiPie         : TMultiPie;  // v7.0
    FOtherSlice       : TPieOtherSlice;
    FShadow           : TPieShadow;
    FSliceHeights     : TSliceValueList; { <-- Slice Heights % storage }
    FUsePatterns      : Boolean;

    ISortedSlice      : Array of Integer;
    IOldChartRect     : TRect;

    Procedure CalcExplodeBiggest;
    Procedure CalcExplodedOffset( ValueIndex:Integer;
                                  Var OffsetX,OffsetY:Integer);
    Function CompareSlice(A,B:Integer):Integer;
    Procedure DisableRotation;
    Function GetPiePen:TChartPen;
    Function GetPieValues:TChartValueList;
    function PieCount:Integer;
    Procedure PreparePiePen(ValueIndex:Integer);
    procedure RemoveOtherSlice;
    Procedure SetAngleSize(Value:Integer);
    Procedure SetAutoMarkPosition(Value:Boolean);
    Procedure SetDark3D(Value:Boolean);
    procedure SetDarkPen(const Value: Integer);
    procedure SetExplodeBiggest(Value:Integer);
    procedure SetMultiPie(const Value:TMultiPie);
    procedure SetOtherSlice(Value:TPieOtherSlice);
    Procedure SetPieValues(Value:TChartValueList);
    Procedure SetShadow(Value:TPieShadow);
    procedure SetUsePatterns(Value:Boolean);
    Function SliceBrushStyle(ValueIndex:Integer):TBrushStyle;
    Function SliceEndZ(ValueIndex:Integer):Integer;
    Procedure SwapSlice(a,b:Integer);
  protected
    FAngles    : TPieAngles;
    IniX       : Integer;
    IniY       : Integer;
    EndX       : Integer;
    EndY       : Integer;
    IsExploded : Boolean;

    Procedure AddSampleValues(NumValues:Integer; Sequential:Boolean=False); override;
    Procedure CalcAngles;
    Procedure CalcExplodedRadius(ValueIndex:Integer; Var AXRadius,AYRadius:Integer);
    Procedure CalcFirstLastVisibleIndex; override;
    Procedure CalcZOrder; override; // 7.0
    Procedure CheckOtherSeriesMarks; override; // 6.02
    Procedure ClearLists; override;
    class Procedure CreateSubGallery(AddSubChart:TChartSubGalleryProc); override;
    procedure DoAfterDrawValues; override;
    procedure DoBeforeDrawChart; override;
    procedure DoBeforeDrawValues; override;
    procedure DrawAllValues; override;
    Procedure DrawLegendShape(ValueIndex:Integer; Const Rect:TRect); override;
    Procedure DrawMark( ValueIndex:Integer; Const St:String;
                        APosition:TSeriesMarkPosition); override;
    Procedure DrawPie(ValueIndex:Integer); virtual;
    procedure DrawValue(ValueIndex:Integer); override;
    Procedure GalleryChanged3D(Is3D:Boolean); override;
    class Function GetEditorClass:String; override;
    Procedure InitCustom3DOptions; override;
    Function MoreSameZOrder:Boolean; override; // 7.0
    Procedure PrepareForGallery(IsEnabled:Boolean); override;
    Procedure PrepareLegendCanvas( ValueIndex:Integer; Var BackColor:TColor;
                                   Var BrushStyle:TBrushStyle); override;
    procedure SetDonutPercent(Value:Integer);
    Procedure SetParentChart(Const Value:TCustomAxisPanel); override;
    class Procedure SetSubGallery(ASeries:TChartSeries; Index:Integer); override;
    procedure WriteData(Stream: TStream); override;
  public
    Constructor Create(AOwner: TComponent); override;
    Destructor Destroy; override;

    Function AddPie(Const AValue:Double; Const ALabel:String='';
                    AColor:TColor=clTeeColor):Integer;
    Procedure Assign(Source:TPersistent); override;
    Function BelongsToOtherSlice(ValueIndex:Integer):Boolean;
    Function CalcClickedPie(x,y:Integer):Integer;
    Function CalcXPos(ValueIndex:Integer):Integer; override;
    Procedure CheckOrder; override;
    Function Clicked(x,y:Integer):Integer; override;
    Function CountLegendItems:Integer; override;
    procedure Delete(ValueIndex:Integer); override;  // 7.0
    Function LegendToValueIndex(LegendIndex:Integer):Integer; override;
    Function MaxXValue:Double; override;
    Function MinXValue:Double; override;
    Function MaxYValue:Double; override;
    Function MinYValue:Double; override;
    Function NumSampleValues:Integer; override;
    procedure SwapValueIndex(a,b:Integer); override;

    property Angles:TPieAngles read FAngles;
    property DonutPercent:Integer read FDonutPercent write SetDonutPercent;
    property ExplodedSlice:TSliceValueList read FExplodedSlice;
    property SliceHeight:TSliceValueList read FSliceHeights;
  published
    property Active;
    property AngleSize:Integer read FAngleSize write SetAngleSize default 360;
    property AutoMarkPosition:Boolean read FAutoMarkPosition write SetAutoMarkPosition default True;
    property CircleBackColor;
    property ColorEachPoint default True;
    property Dark3D:Boolean read FDark3D write SetDark3D default True;
    property DarkPen:Integer read FDarkPen write SetDarkPen default 0;
    property ExplodeBiggest:Integer read FExplodeBiggest write SetExplodeBiggest default 0;
    property Gradient:TChartGradient read FCircleGradient write SetCircleGradient;
    property MultiPie:TMultiPie read FMultiPie write SetMultiPie default mpAutomatic;
    property OtherSlice:TPieOtherSlice read FOtherSlice write SetOtherSlice;
    property PiePen:TChartPen read GetPiePen write SetPen;
    property PieValues:TChartValueList read GetPieValues write SetPieValues;
    property RotationAngle;
    property Shadow:TPieShadow read FShadow write SetShadow; { 5.02 }
    property UsePatterns:Boolean read FUsePatterns write SetUsePatterns default False;
  end;

  TFastLineSeries=class(TCustomLineSeries)
  private
    FAutoRepaint    : Boolean;
    FDrawAll        : Boolean;

    {$IFDEF TEEOCX}
    FExpandAxis     : Integer; // 7.01
    {$ENDIF}

    FFastPen        : Boolean;
    FIgnoreNulls    : Boolean; // 6.0
    FInvertedStairs : Boolean; // 6.0
    FStairs         : Boolean; // 6.0

    {$IFNDEF CLX}
    DCPEN        : HGDIOBJ;
    {$ENDIF}

    { internal }
    OldX         : Integer;
    OldY         : Integer;

    procedure DoMove(X,Y:Integer);
    Procedure SetDrawAll(Const Value:Boolean);
    procedure SetFastPen(const Value: Boolean);
    procedure SetIgnoreNulls(const Value: Boolean);
    procedure SetInvertedStairs(const Value: Boolean);
    procedure SetStairs(const Value: Boolean);
  protected
    Procedure CalcHorizMargins(Var LeftMargin,RightMargin:Integer); override;
    Procedure CalcPosition(ValueIndex:Integer; var x,y:Integer);
    Procedure CalcVerticalMargins(Var TopMargin,BottomMargin:Integer); override;
    class Procedure CreateSubGallery(AddSubChart:TChartSubGalleryProc); override;
    procedure DrawAllValues; override;
    Procedure DrawLegendShape(ValueIndex:Integer; Const Rect:TRect); override;
    Procedure DrawMark( ValueIndex:Integer; Const St:String;
                        APosition:TSeriesMarkPosition); override;
    procedure DrawValue(ValueIndex:Integer); override;
    class Function GetEditorClass:String; override;
    Procedure NotifyNewValue(Sender:TChartSeries; ValueIndex:Integer); override;  // 7.0 moved from public
    procedure PrepareCanvas;
    Procedure PrepareLegendCanvas( ValueIndex:Integer; Var BackColor:TColor;
                                   Var BrushStyle:TBrushStyle); override;
    Procedure SetPen(Const Value:TChartPen); override;
    Procedure SetSeriesColor(AColor:TColor); override;
    class Procedure SetSubGallery(ASeries:TChartSeries; Index:Integer); override;
  public
    Constructor Create(AOwner: TComponent); override;
    Procedure Assign(Source:TPersistent); override;
    Function Clicked(x,y:Integer):Integer; override;
    property FastPen:Boolean read FFastPen write SetFastPen default False;
  published
    property Active;
    property Cursor;
    property Depth;
    property HorizAxis;
    property Marks;
    property ParentChart;
    property DataSource;
    property PercentFormat;
    property SeriesColor;
    property ShowInLegend;
    property Title;
    property ValueFormat;
    property VertAxis;
    property XLabelsSource;

    { events }
    property AfterDrawValues;
    property BeforeDrawValues;
    property OnAfterAdd;
    property OnBeforeAdd;
    property OnClearValues;
    property OnClick;
    property OnDblClick;
    property OnGetMarkText;
    property OnMouseEnter;
    property OnMouseLeave;

    property AutoRepaint:Boolean read FAutoRepaint write FAutoRepaint default True;

    {$IFDEF TEEOCX}
    property ExpandAxis:Integer read FExpandAxis write FExpandAxis default 25; // 7.01
    {$ENDIF}

    property DrawAllPoints:Boolean read FDrawAll write SetDrawAll default True; { 5.02 }
    property IgnoreNulls:Boolean read FIgnoreNulls write SetIgnoreNulls default True;
    property InvertedStairs:Boolean read FInvertedStairs write SetInvertedStairs default False;
    property LinePen;
    property Stairs:Boolean read FStairs write SetStairs default False;
    property XValues;
    property YValues;
  end;

Const
  bsCylinder=bsCilinder;  { <-- better spelling... }

// Calls RegisterTeeSeries for each "standard" series type:
// Line, Bar, Pie, FastLine, HorizBar, Area, Point and HorizLine
Procedure RegisterTeeStandardSeries;

Procedure TeePointerDrawLegend(Pointer:TSeriesPointer; AColor:TColor;
                               Const Rect:TRect; DrawPen:Boolean);


implementation

Uses Math, TeeConst;

Function GetDefaultPattern(PatternIndex:Integer):TBrushStyle;
Const MaxDefaultPatterns = 6;
      PatternPalette     : Array[1..MaxDefaultPatterns] of TBrushStyle=
	( bsHorizontal,
	  bsVertical,
	  bsFDiagonal,
	  bsBDiagonal,
	  bsCross,
	  bsDiagCross
	);
Begin
  result:=PatternPalette[1+(PatternIndex mod MaxDefaultPatterns)];
End;

Procedure TeePointerDrawLegend(Pointer:TSeriesPointer; AColor:TColor;
                               Const Rect:TRect; DrawPen:Boolean);
var tmpHoriz : Integer;
    tmpVert  : Integer;
begin
  if Assigned(Pointer.ParentChart) then
  begin
    Pointer.PrepareCanvas(Pointer.ParentChart.Canvas,AColor);

    with TCustomChart(Pointer.ParentChart) do
    if not Legend.Symbol.DefaultPen then
    begin
      Canvas.AssignVisiblePen(Legend.Symbol.Pen); { use custom legend pen }
      DrawPen:=Legend.Symbol.Pen.Visible;
    end;

    With Rect do
    begin
      if DrawPen then
      begin
        tmpHoriz:=(Right-Left) div 3;
        tmpVert :=(Bottom-Top) div 3;
      end
      else
      begin
        tmpHoriz:=1+((Right-Left) div 2);
        tmpVert :=1+((Bottom-Top) div 2);
      end;

      Pointer.DrawPointer(Pointer.ParentChart.Canvas,
                          False, (Left+Right) div 2,(Top+Bottom) div 2,
                          Math.Min(Pointer.HorizSize,tmpHoriz),
                          Math.Min(Pointer.VertSize,tmpVert),AColor,Pointer.Style);
    end;
  end;
end;

{ TCustomLineSeries }
Function TCustomLineSeries.GetLinePen:TChartPen;
Begin
  result:=Pen;
end;

{ TCustomSeries }
Constructor TCustomSeries.Create(AOwner: TComponent);
Begin
  inherited;
  FClickableLine:=True;
  FColorEachLine:=True;
  DrawBetweenPoints:=True;
  FPointer:=TSeriesPointer.Create(Self);

  FAreaLinesPen:=CreateChartPen;
  FOutLine:=TChartHiddenPen.Create(CanvasChanged);
  FShadow:=TTeeShadow.Create(CanvasChanged);
  FAreaBrush:=TChartBrush.Create(CanvasChanged);
  FAreaColor:=clTeeColor;
  FDark3D:=True;
  FGradient:=TChartGradient.Create(CanvasChanged);
end;

Destructor TCustomSeries.Destroy;
Begin
  FGradient.Free;
  FAreaBrush.Free;
  FAreaLinesPen.Free;
  FShadow.Free;
  FOutLine.Free;
  FreeAndNil(FPointer);
  inherited;
end;

Procedure TCustomSeries.DrawMark( ValueIndex:Integer; Const St:String;
                                  APosition:TSeriesMarkPosition);
begin
  Marks.ZPosition:=StartZ;
  if YMandatory then Marks.ApplyArrowLength(APosition);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久精品国产麻豆演员表| 久久五月婷婷丁香社区| 日韩精品一区在线观看| 最新国产精品久久精品| 麻豆国产精品777777在线| 国产成人免费在线视频| 日韩欧美高清dvd碟片| 亚洲精品国产无套在线观| 国产综合成人久久大片91| 欧美日韩国产精选| 亚洲美女在线国产| 成人免费毛片嘿嘿连载视频| 日韩视频在线你懂得| 亚洲电影视频在线| 色偷偷成人一区二区三区91| 国产欧美日本一区二区三区| 老司机精品视频一区二区三区| 欧美日韩电影一区| 亚洲欧美综合色| 94色蜜桃网一区二区三区| 亚洲国产成人私人影院tom | 欧美精品久久一区| 一区二区三区在线高清| 不卡的av中国片| 国产精品美女久久久久av爽李琼 | 亚洲曰韩产成在线| 91蜜桃网址入口| 一区在线中文字幕| 91片黄在线观看| 国产精品二三区| 99免费精品在线| 亚洲视频在线观看三级| 一本色道久久综合亚洲91| 亚洲色图一区二区| 欧美性猛交xxxx黑人交| 亚洲午夜精品一区二区三区他趣| 91黄色免费网站| 午夜在线成人av| 日韩欧美一级片| 国产在线视频精品一区| 久久久久久久精| 99久久国产综合色|国产精品| 欧美国产精品一区| 一本色道久久综合精品竹菊| 亚洲精品第一国产综合野| 色婷婷av一区| 日韩电影一区二区三区四区| 欧美一区二区免费| 高清不卡一区二区在线| 国产精品久久久久久福利一牛影视| 久久精品99国产精品| 久久久久久久久99精品| 99久久久久久99| 秋霞午夜av一区二区三区| 久久日韩精品一区二区五区| 成人午夜电影久久影院| 一区二区三区成人在线视频| 欧美日韩国产中文| 国产91丝袜在线播放| 亚洲男人电影天堂| 欧美一区二区三区播放老司机| 黑人精品欧美一区二区蜜桃| 国产欧美视频一区二区| 欧美在线不卡一区| 国内精品国产成人国产三级粉色 | 五月天婷婷综合| 久久久久久久久久久电影| 色综合 综合色| 狠狠色狠狠色综合系列| 中文字幕亚洲在| 日韩欧美成人一区二区| 99精品久久久久久| 狠狠色丁香婷综合久久| 亚洲视频网在线直播| 日韩欧美一区二区免费| 色诱视频网站一区| 国产精品888| 日韩国产高清在线| 日韩美女视频一区二区 | 亚洲理论在线观看| 久久久无码精品亚洲日韩按摩| 91久久奴性调教| 国产一区二区影院| 日韩精品国产欧美| 一区二区三区不卡在线观看| 久久先锋资源网| 欧美一区二区视频在线观看2022 | 亚洲精品大片www| 国产精品污www在线观看| 日韩一区二区免费视频| 色天使久久综合网天天| 国产成人综合在线| 狠狠色综合色综合网络| 日本午夜一区二区| 午夜精品一区二区三区电影天堂| 国产精品久久久久久久午夜片| 欧美videos大乳护士334| 欧美精品第1页| 欧美体内she精视频| 91视频观看免费| 99热在这里有精品免费| 成人av影院在线| 国产99久久久国产精品潘金 | 美女任你摸久久| 亚洲h精品动漫在线观看| 一区二区三区高清| 亚洲一区在线观看免费观看电影高清| 亚洲视频电影在线| 亚洲人成伊人成综合网小说| 国产精品乱码人人做人人爱| 国产女同互慰高潮91漫画| 久久午夜羞羞影院免费观看| 精品国产一区二区国模嫣然| 日韩久久精品一区| 26uuu成人网一区二区三区| 久久天堂av综合合色蜜桃网| 精品国产乱码久久久久久1区2区 | 1024亚洲合集| 1024成人网| 亚洲自拍偷拍av| 日韩成人精品视频| 久久国产精品无码网站| 国产专区欧美精品| 成人精品电影在线观看| 成人高清av在线| 一本色道综合亚洲| 欧美老女人第四色| 久久网站最新地址| 亚洲视频一区二区在线| 亚洲国产中文字幕在线视频综合| 午夜视频在线观看一区二区 | 成人免费三级在线| 色婷婷av一区二区三区大白胸| 在线精品视频一区二区三四| 欧美军同video69gay| 欧美videossexotv100| 欧美激情一区二区三区在线| 中文字幕一区在线观看| 亚洲高清一区二区三区| 久久aⅴ国产欧美74aaa| av在线不卡观看免费观看| 欧美日韩一区二区三区四区五区 | 精品一区二区在线看| 成人福利视频在线| 欧美三级视频在线观看| 久久久久久久综合狠狠综合| 中文字幕日本不卡| 美女在线视频一区| 91在线观看视频| 日韩欧美亚洲一区二区| 综合久久久久久久| 免费的成人av| 色噜噜狠狠一区二区三区果冻| 欧美一区二区啪啪| 亚洲精选免费视频| 国产一区二区三区四区五区美女| 色综合网色综合| 久久久不卡网国产精品二区| 一区二区视频免费在线观看| 国产精品一区二区无线| 欧美性一级生活| 国产丝袜欧美中文另类| 日韩和欧美的一区| 一本久久a久久免费精品不卡| 精品国产a毛片| 亚洲va在线va天堂| www..com久久爱| 精品欧美一区二区久久| 亚洲综合网站在线观看| 国产成人亚洲综合色影视| 欧美久久久久免费| 亚洲欧美国产毛片在线| 国产精品自拍三区| 日韩欧美国产午夜精品| 亚洲一区二区三区中文字幕| 粉嫩av一区二区三区粉嫩| 精品久久久久99| 蜜桃av一区二区在线观看| 欧美色成人综合| 一区二区在线观看不卡| 成人爱爱电影网址| 欧美激情综合五月色丁香 | 99精品久久只有精品| 久久免费电影网| 狠狠色综合色综合网络| 精品免费一区二区三区| 青青草国产成人av片免费| 欧美日韩国产中文| 午夜在线电影亚洲一区| 欧美日韩成人综合在线一区二区| 亚洲裸体xxx| 91啦中文在线观看| 亚洲激情图片一区| 在线观看网站黄不卡| 亚洲免费观看高清| 在线观看国产一区二区| 亚洲综合清纯丝袜自拍| 欧美三级三级三级爽爽爽| 手机精品视频在线观看| 欧美一区二区三区人|