⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 teexport.pas

📁 TeeChart 7.0 With Source在Delphi 7.0中的安装
💻 PAS
字号:
{**********************************************}
{   TeeChart Export Dialog - Inherited         }
{   Copyright (c) 1996-2005 by David Berneda   }
{**********************************************}
unit TeExport;
{$I TeeDefs.inc}

interface

uses
  {$IFNDEF LINUX}
  Windows, Messages,
  {$ENDIF}
  SysUtils, Classes,
  {$IFDEF CLX}
  QGraphics, QControls, QForms, QDialogs, QStdCtrls, QExtCtrls, QComCtrls,
  {$ELSE}
  Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls,
  {$ENDIF}
  TeeExport, TeeProcs, TeCanvas;

type
  TTeeExportForm = class(TTeeExportFormBase)
  private
    { Private declarations }
    {$IFNDEF CLX}
    procedure CMShowingChanged(var Message: TMessage); message CM_SHOWINGCHANGED;
    {$ENDIF}
  protected
    Function CreateData:TTeeExportData; override;
    Procedure DoSaveNativeToFile( Const FileName:String;
                                  IncludeData:Boolean); override;
    Function ExistData:Boolean; override;
    Function CreateNativeStream:TStream; override;
    Procedure PrepareOnShow; override;
  public
    { Public declarations }
  end;

{ Show the Export dialog }
{ example: TeeExport(Self,Chart1); }
Procedure TeeExport(AOwner:TComponent; APanel:TCustomTeePanel);

{ Show the Save dialog and save to AFormat export format }
{ example: TeeSavePanel(TGIFExportFormat,Chart1); }
Procedure TeeSavePanel(AFormat:TTeeExportFormatClass; APanel:TCustomTeePanel);

{ starts the MAPI (eg: Outlook) application with an empty new email
  message with the attachment file "FileName" }
Procedure TeeEmailFile(Const FileName:String; Const Subject:String='TeeChart');

implementation

{$IFNDEF CLX}
{$IFNDEF LCL}
{$R *.DFM}
{$ENDIF}
{$ELSE}
{$R *.xfm}
{$ENDIF}

uses TeeConst, TeeStore, TeEngine, Chart;

Procedure TeeExport(AOwner:TComponent; APanel:TCustomTeePanel);
begin
  With TTeeExportForm.Create(AOwner) do
  try
    ExportPanel:=APanel;
    ShowModal;
  finally
    Free;
  end;
end;

Procedure TeeSavePanel(AFormat:TTeeExportFormatClass; APanel:TCustomTeePanel);
begin
  TeeExportSavePanel(AFormat,APanel);
end;

Procedure TeeEmailFile(Const FileName:String; Const Subject:String='TeeChart');
begin
  InternalTeeEmailFile(FileName,Subject);
end;

{ TTeeExportForm }

function TTeeExportForm.CreateData: TTeeExportData;

  Function SelectedSeries:TChartSeries;
  begin
    result:=TChartSeries(CBSeries.Items.Objects[CBSeries.ItemIndex]);
  end;

  function Chart: TCustomChart;
  begin
    result:=TCustomChart(ExportPanel);
  end;

begin
  Case RGText.ItemIndex of
    0: begin
         result:=TSeriesDataText.Create(Chart,SelectedSeries);
         TSeriesDataText(result).TextDelimiter:=GetSeparator;
         TSeriesDataText(result).TextQuotes:=EQuotes.Text; // 7.0
       end;
    1: result:=TSeriesDataXML.Create(Chart,SelectedSeries);
    2: result:=TSeriesDataHTML.Create(Chart,SelectedSeries);
  else
    result:=TSeriesDataXLS.Create(Chart,SelectedSeries);
  end;

  // Configure options
  With TSeriesData(result) do
  begin
    IncludeLabels:=CBLabels.Checked;
    IncludeIndex :=CBIndex.Checked;
    IncludeHeader:=CBHeader.Checked;
    IncludeColors:=CBColors.Checked;
  end;
end;

function TTeeExportForm.ExistData: Boolean;
begin
  result:=(ExportPanel is TCustomAxisPanel) and
          (TCustomAxisPanel(ExportPanel).SeriesCount>0);
end;

Procedure TTeeExportForm.DoSaveNativeToFile( Const FileName:String;
                                             IncludeData:Boolean);
begin
  SaveChartToFile(TCustomChart(ExportPanel),FileName,
                  IncludeData,NativeAsText);
end;

Procedure TTeeExportForm.PrepareOnShow;
begin
  FillSeriesItems(CBSeries.Items,TCustomAxisPanel(ExportPanel).SeriesList);
  CBSeries.Items.Insert(0,TeeMsg_All);
  CBSeries.ItemIndex:=0;
end;

Function TTeeExportForm.CreateNativeStream:TStream;
begin
  result:=TMemoryStream.Create;
  SaveChartToStream(TCustomChart(ExportPanel),result,
                    CBNativeData.Checked,NativeAsText);
end;

{$IFNDEF CLX}
procedure TTeeExportForm.CMShowingChanged(var Message: TMessage);
begin
  inherited;
  if Assigned(Parent) then
     Parent.UpdateControlState;
end;
{$ENDIF}

end.

⌨️ 快捷键说明

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