cxgridchartview.pas

来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,502 行 · 第 1/5 页

PAS
1,502
字号
{********************************************************************}
{                                                                    }
{       Developer Express Visual Component Library                   }
{       ExpressQuantumGrid                                           }
{                                                                    }
{       Copyright (c) 1998-2008 Developer Express Inc.               }
{       ALL RIGHTS RESERVED                                          }
{                                                                    }
{   The entire contents of this file is protected by U.S. and        }
{   International Copyright Laws. Unauthorized reproduction,         }
{   reverse-engineering, and distribution of all or any portion of   }
{   the code contained in this file is strictly prohibited and may   }
{   result in severe civil and criminal penalties and will be        }
{   prosecuted to the maximum extent possible under the law.         }
{                                                                    }
{   RESTRICTIONS                                                     }
{                                                                    }
{   THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES            }
{   (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE     }
{   SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS    }
{   LICENSED TO DISTRIBUTE THE EXPRESSQUANTUMGRID AND ALL            }
{   ACCOMPANYING VCL CONTROLS AS PART OF AN EXECUTABLE PROGRAM ONLY. }
{                                                                    }
{   THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED       }
{   FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE         }
{   COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE        }
{   AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT   }
{   AND PERMISSION FROM DEVELOPER EXPRESS INC.                       }
{                                                                    }
{   CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON        }
{   ADDITIONAL RESTRICTIONS.                                         }
{                                                                    }
{********************************************************************}

unit cxGridChartView;

{$I cxVer.inc}

interface

uses
{$IFDEF DELPHI6}
  Variants,
{$ENDIF}
  Windows, Messages, Classes, Graphics, Controls, Forms, Menus, StdCtrls,
  cxClasses, cxGraphics, cxLookAndFeels, cxLookAndFeelPainters, cxStyles, cxControls, cxStorage,
  cxEdit, cxCheckBox, cxCheckListBox, cxDropDownEdit, cxLabel, cxPC,
  cxVariants, cxCustomData, cxData, cxDataStorage,
  cxGridCommon, cxGridCustomView;

const
  cxGridChartCustomizationFormDefaultWidth = 200;

  htChartBase = 50;
  htChartTitle = htChartBase + 1;
  htLegend = htChartBase + 2;
  htLegendItem = htChartBase + 3;
  htChartToolBox = htChartBase + 4;
  htDataLevelInfo = htChartBase + 5;
  htDataLevelActiveValueInfo = htChartBase + 6;
  htChartCustomizeButton = htChartBase + 7;
  htDiagramSelector = htChartBase + 8;
  htChartValue = htChartBase + 9;
  // histogram
  htPlot = htChartBase + 10;
  htCategoryAxisTitle = htChartBase + 11;
  htValueAxisTitle = htChartBase + 12;
  // line diagram
  htChartValueLine = htChartBase + 13;
  // area diagram
  htChartValueArea = htChartBase + 14;
  // pie diagram
  htSeriesSite = htChartBase + 15;
  htSeriesSiteCaption = htChartBase + 16;

  ckToolBox = 2;

  dsDiagramFirst = 0;
  dsLegend = dsDiagramFirst;
  dsValueCaptions = dsDiagramFirst + 1;
  dsValues = dsDiagramFirst + 2;
  dsAxis = dsDiagramFirst + 3;
  dsCategoryAxis = dsDiagramFirst + 4;
  dsValueAxis = dsDiagramFirst + 5;
  dsAxisTitle = dsDiagramFirst + 6;
  dsCategoryAxisTitle = dsDiagramFirst + 7;
  dsValueAxisTitle = dsDiagramFirst + 8;
  dsGridLines = dsDiagramFirst + 9;
  dsCategoryGridLines = dsDiagramFirst + 10;
  dsValueGridLines = dsDiagramFirst + 11;
  dsPlot = dsDiagramFirst + 12;
  dsValueMarkers = dsDiagramFirst + 13;
  dsSeriesSiteCaptions = dsDiagramFirst + 14;
  dsSeriesSites = dsDiagramFirst + 15;
  dsDiagramLast = dsSeriesSites;

  ssSeriesFirst = 0;
  ssValues = ssSeriesFirst;
  ssSeriesLast = ssValues;

  vsChartFirst = vsCustomLast + 1;
  vsTitle = vsChartFirst;
  vsLegend = vsChartFirst + 1;
  vsToolBox = vsChartFirst + 2;
  vsDiagramSelector = vsChartFirst + 3;
  vsDataLevelsInfo = vsChartFirst + 4;
  vsDataLevelActiveValueInfo = vsChartFirst + 5;
  vsActiveDataLevelInfo = vsChartFirst + 6;
  vsChartLast = vsActiveDataLevelInfo;

  cxGridChartColumnDiagramDefaultBorderWidth = 1;
  cxGridChartLineDiagramDefaultHotSpotSize = 15;
  cxGridChartLineDiagramDefaultLineWidth = 1;
  cxGridChartLineDiagramDefaultMarkerSize = 7;
  cxGridChartDefaultDataLevelActiveValueDropDownCount = 15;

  cxGridChartItemDefaultSummaryKind = skSum;

type
  TcxGridChartCustomizationForm = class;
  TcxGridChartController = class;
  TcxCustomGridChartTitleViewInfo = class;
  TcxGridChartLegendItemViewInfo = class;
  TcxGridChartLegendViewInfo = class;
  TcxGridChartDiagramValueViewInfo = class;
  TcxGridChartDiagramViewInfo = class;
  TcxGridChartHistogramTickMarkLabelsViewInfo = class;
  TcxGridChartHistogramViewInfo = class;
  TcxGridChartColumnDiagramViewInfo = class;
  TcxGridChartLineDiagramLegendItemViewInfo = class;
  TcxGridChartLineDiagramValueViewInfoClass = class of TcxGridChartLineDiagramValueViewInfo;
  TcxGridChartLineDiagramValueViewInfo = class;
  TcxGridChartLineDiagramViewInfo = class;
  TcxGridChartAreaDiagramValueViewInfo = class;
  TcxGridChartPieDiagramValueViewInfo = class;
  TcxGridChartPieSeriesSiteViewInfo = class;
  TcxGridChartPieDiagramViewInfo = class;
  TcxGridChartToolBoxItemViewInfo = class;
  TcxGridChartToolBoxDataLevelActiveValueViewInfo = class;
  TcxGridChartToolBoxDataLevelInfoViewInfo = class;
  TcxGridChartToolBoxCustomizeButtonViewInfo = class;
  TcxGridChartToolBoxDiagramSelectorViewInfo = class;
  TcxGridChartToolBoxViewInfo = class;
  TcxGridChartViewInfo = class;
  TcxCustomGridChartTitle = class;
  TcxGridChartDiagram = class;
  TcxGridChartHistogramAxisTitle = class;
  TcxGridChartHistogramAxis = class;
  TcxGridChartHistogramAxisValue = class;
  TcxGridChartHistogram = class;
  TcxGridChartColumnDiagram = class;
  TcxGridChartLineDiagram = class;
  TcxGridChartAreaDiagram = class;
  TcxGridChartPieDiagram = class;
  TcxGridChartItemDataBinding = class;
  TcxGridChartItemClass = class of TcxGridChartItem;
  TcxGridChartItem = class;
  TcxGridChartDataGroup = class;
  TcxGridChartSeries = class;
  TcxGridChartView = class;

  TcxGridChartDataGroupContainerKind = Integer;

  TcxGridChartPartAlignment = (cpaDefault, cpaStart, cpaCenter, cpaEnd);
  TcxGridChartPartOrientation = (cpoDefault, cpoHorizontal, cpoVertical);
  TcxGridChartPartPosition = (cppDefault, cppNone, cppLeft, cppTop, cppRight, cppBottom);

  TcxGridChartColumnDiagramValueCaptionPosition = (cdvcpNone, cdvcpInsideBase,
    cdvcpCenter, cdvcpInsideEnd, cdvcpOutsideEnd);

  TcxGridChartLineDiagramValueCaptionPosition = (ldvcpNone, ldvcpLeft, ldvcpAbove,
    ldvcpRight, ldvcpBelow, ldvcpCenter);
  TcxGridChartLineStyle = (clsNone, clsSolid, clsDash, clsDot, clsDashDot, clsDashDotDot);
  TcxGridChartMarkerStyle = (cmsNone, cmsSquare, cmsTriangle, cmsDiamond, cmsCircle);

  TcxGridChartPieDiagramValueCaptionPosition = (pdvcpNone, pdvcpCenter,
    pdvcpInsideEnd, pdvcpOutsideEnd, pdvcpOutsideEndWithLeaderLines);

  { hit tests }

  TcxGridChartTitleHitTest = class(TcxCustomGridViewHitTest)
  protected
    class function GetHitTestCode: Integer; override;
  end;

  TcxGridChartLegendHitTest = class(TcxCustomGridViewHitTest)
  protected
    class function GetHitTestCode: Integer; override;
  end;

  TcxGridChartLegendItemHitTest = class(TcxCustomGridViewHitTest)
  protected
    class function GetHitTestCode: Integer; override;
  public
    Index: Integer;
    Series: TcxGridChartSeries;
    ValueIndex: Integer;
  end;

  TcxGridChartToolBoxHitTest = class(TcxCustomGridViewHitTest)
  protected
    class function GetHitTestCode: Integer; override;
  end;

  TcxGridChartDataLevelInfoHitTest = class(TcxCustomGridViewHitTest)
  private
    FDataLevel: Integer;
    FDataLevelObject: TcxGridChartDataGroup;
    procedure SetDataLevel(Value: Integer);
    procedure SetDataLevelObject(Value: TcxGridChartDataGroup);
  protected
    class function GetHitTestCode: Integer; override;
  public
    DataLevelObjectContainerKind: TcxGridChartDataGroupContainerKind;
    function DragAndDropObjectClass: TcxCustomGridDragAndDropObjectClass; override;
    property DataLevel: Integer read FDataLevel write SetDataLevel;
    property DataLevelObject: TcxGridChartDataGroup read FDataLevelObject write SetDataLevelObject;
  end;

  TcxGridChartDataLevelActiveValueInfoHitTest = class(TcxGridChartDataLevelInfoHitTest)
  protected
    class function GetHitTestCode: Integer; override;
  public
    CanDropDown: Boolean;
    function Cursor: TCursor; override;
    function DragAndDropObjectClass: TcxCustomGridDragAndDropObjectClass; override;
  end;

  TcxGridChartCustomizeButtonHitTest = class(TcxCustomGridViewHitTest)
  protected
    class function GetHitTestCode: Integer; override;
  end;

  TcxGridChartDiagramSelectorHitTest = class(TcxCustomGridViewHitTest)
  protected
    class function GetHitTestCode: Integer; override;
  public
    CanDropDown: Boolean;
    function Cursor: TCursor; override;
  end;

  TcxGridChartValueHitTest = class(TcxCustomGridViewHitTest)
  protected
    class function GetHitTestCode: Integer; override;
  public
    CanDrillDown: Boolean;
    Series: TcxGridChartSeries;
    ValueIndex: Integer;
    function Cursor: TCursor; override;
  end;

  TcxCustomGridChartDiagramHitTest = class(TcxCustomGridViewHitTest)
  public
    Diagram: TcxGridChartDiagram;
  end;

  // histogram

  TcxGridChartHistogramPlotHitTest = class(TcxCustomGridChartDiagramHitTest)
  protected
    class function GetHitTestCode: Integer; override;
  end;

  TcxCustomGridChartHistogramAxisHitTest = class(TcxCustomGridChartDiagramHitTest);

  TcxGridChartHistogramCategoryAxisTitleHitTest = class(TcxCustomGridChartHistogramAxisHitTest)
  protected
    class function GetHitTestCode: Integer; override;
  end;

  TcxGridChartHistogramValueAxisTitleHitTest = class(TcxCustomGridChartHistogramAxisHitTest)
  protected
    class function GetHitTestCode: Integer; override;
  end;

  // line diagram

  TcxGridChartValueLineHitTest = class(TcxGridChartValueHitTest)
  protected
    class function GetHitTestCode: Integer; override;
  end;

  // area diagram

  TcxGridChartValueAreaHitTest = class(TcxGridChartValueHitTest)
  protected
    class function GetHitTestCode: Integer; override;
  end;

  // pie diagram

  TcxGridChartPieSeriesSiteHitTest = class(TcxCustomGridChartDiagramHitTest)
  protected
    class function GetHitTestCode: Integer; override;
  public
    Series: TcxGridChartSeries;
  end;

  TcxGridChartPieSeriesSiteCaptionHitTest = class(TcxGridChartPieSeriesSiteHitTest)
  protected
    class function GetHitTestCode: Integer; override;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?