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

📄 teeexpform.pas

📁 第三方控件:PaintGrid.pas 网格型仪表控件源文件 Mymeter.pas 圆型仪表控件源文件 Project1是这两个控件的使用范例。 该
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  end;
end;

{$IFNDEF NOUSE_BDE}
procedure TTeeDlgWizard.ChangedList(Sender:TObject);
begin
  NextButton.Enabled:=TSelectListForm(Sender).ToList.Items.Count>0;
end;
{$ENDIF}

procedure TTeeDlgWizard.RefreshButtons;
begin
  PrevButton.Enabled := PageControl.ActivePage.PageIndex > 0;

  With NextButton do
  begin
    Case PageControl.ActivePage.PageIndex of
      pgTable:  Enabled:=CBTables.Text<>'';
      pgFields: Enabled:=IFields.ToList.Items.Count>0;
    else
      Enabled:=True;
    end;

    if PageControl.ActivePage.PageIndex=pgPreviewChart then
       Caption:=TeeMsg_ExpFinish
    else
       Caption:=TeeMsg_ExpNext;
  end;
end;

type TSeriesAccess=class(TChartSeries);

Procedure TTeeDlgWizard.CreateSeries( AOwner:TComponent;
                                      AChart:TCustomChart;
                                      {$IFNDEF NOUSE_BDE}
                                      ATable:TDataSet;
                                      {$ENDIF}
                                      ShowData:Boolean );
var  t         : Integer;
     tmpSeries : TChartSeries;
     {$IFNDEF NOUSE_BDE}
     theField  : TField;
     {$ENDIF}
     tmpSeriesClass   : TChartSeriesClass;
     tmpFunctionClass : TTeeFunctionClass;
     NumSeries : Integer;
     SubIndex  : Integer;
begin
  {$IFNDEF NOUSE_BDE}
  if Assigned(ATable) then
     NumSeries:=Math.Max(1,IFields.ToList.Items.Count)
  else
  {$ENDIF}
     NumSeries:=2;

  tmpGallery.GetSeriesClass(tmpSeriesClass,tmpFunctionClass,SubIndex);

  if tmpSeriesClass=TPieSeries then NumSeries:=1;

  AChart.FreeAllSeries;

  for t:=0 to NumSeries-1 do
  begin
    tmpSeries:=tmpSeriesClass.Create(AOwner);

    With tmpSeries do
    begin
      { this should be done BEFORE setting ParentChart ! }

      {$IFNDEF CLR}
      if SubIndex<>-1 then { sub-gallery style... }
         TSeriesAccess(tmpSeries).SetSubGallery(tmpSeries,SubIndex);
      {$ENDIF}

      { now set the Chart... }
      ParentChart:=AChart;

      {$IFNDEF NOUSE_BDE}

      if Assigned(ATable) then
      begin
        if AChart is TDBChart then TDBChart(AChart).AutoRefresh:=False;
        DataSource:=ATable;
        MandatoryValueList.ValueSource:=IFields.ToList.Items[t];
        TheField:=ATable.FieldByName(MandatoryValueList.ValueSource);
        if (t=0) and (cbLabelsFields.ItemIndex>=0) then
           XLabelsSource:=cbLabelsFields.Items[cbLabelsFields.ItemIndex];
        MandatoryValueList.DateTime:=TeeFieldType(TheField.DataType)=tftDateTime;
        GetHorizAxis.Title.Caption:='';
        GetVertAxis.Title.Caption:='';
        NotMandatoryValueList.DateTime:=False;

        if YMandatory then
        begin
          if NumSeries=1 then GetVertAxis.Title.Caption:=YValues.ValueSource;
          if XLabelsSource<>'' then GetHorizAxis.Title.Caption:=XLabelsSource;
        end
        else
        begin
          if NumSeries=1 then GetHorizAxis.Title.Caption:=XValues.ValueSource;
          if XLabelsSource<>'' then GetVertAxis.Title.Caption:=XLabelsSource;
        end;
        Title:=MandatoryValueList.ValueSource;
      end
      else
      {$ENDIF}
         FillSampleValues(NumSampleValues);

      Name:=TeeMsg_DefaultSeriesName+IntToStr(AChart.SeriesCount);

      ColorEachPoint:=CBColorEach.Checked;

      Marks.Style:=smsValue;
      Marks.Visible:=CBShowMarksOption.Checked;

      {$IFNDEF NOUSE_BDE}
      if AChart is TDBChart then
         TDBChart(AChart).AutoRefresh:=True;
      {$ENDIF}
    end;
  end;

  AChart.View3D:=tmpGallery.SelectedChart.View3D;

  AChart.Title.Text.Clear;

  {$IFNDEF NOUSE_BDE}

  if Assigned(ATable) then
  begin
    {$IFDEF CLX}
    AChart.Title.Text.Add(CBTables.Text);
    {$ELSE}
    if ATable is TTable then
       AChart.Title.Text.Add(TTable(ATable).TableName)
    else
       AChart.Title.Text.Add(CBTables.Text);
    {$ENDIF}

    if ShowData and (AChart is TDBChart) then TDBChart(AChart).RefreshData;
  end
  else
  {$ENDIF}
       AChart.Title.Text.Add('TChart');  { <-- do not translate }
end;

procedure TTeeDlgWizard.Image1Click(Sender: TObject);
begin
  TeeShowAboutBox;
end;

procedure TTeeDlgWizard.CB3DOptionClick(Sender: TObject);
begin
  PreviewChart.View3D:=CB3DOption.Checked;
  if CB3DOption.Checked then RG3D.ItemIndex:=1
                        else RG3D.ItemIndex:=0;
end;

procedure TTeeDlgWizard.CBShowLegendOptionClick(Sender: TObject);
begin
  PreviewChart.Legend.Visible:=CBShowLegendOption.Checked;
end;

procedure TTeeDlgWizard.CBShowMarksOptionClick(Sender: TObject);
var t : Integer;
begin
  for t:=0 to PreviewChart.SeriesCount-1 do
     PreviewChart.Series[t].Marks.Visible:=CBShowMarksOption.Checked;
end;

procedure TTeeDlgWizard.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  CanClose:=(ModalResult<>mrCancel) or
            (PageControl.ActivePage.PageIndex=pgStyle) or
            TeeYesNo(TeeMsg_WizardSureToClose);
end;

procedure TTeeDlgWizard.HelpButtonClick(Sender: TObject);
begin
  {$IFNDEF CLX}
  Application.HelpJump('TeeChart_Wizard');  { <-- don't translate }
  {$ENDIF}
end;

procedure TTeeDlgWizard.TryChangeFolder(const S:String);
begin
  {$I-}
  ChDir(S);
  {$IFNDEF CLR}
  if IOResult<>0 then ;
  {$ENDIF}
  {$I+}
end;

procedure TTeeDlgWizard.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  {$IFNDEF LINUX}
  // Load last file path and url from registry
  with TRegistry.Create do
  try
    if OpenKey(TeeMsg_WizardKey,True) then
    begin
      WriteString('LastFile',EFile.Text);
      WriteString('LastURL',EWeb.Text);
      if LastFolder<>'' then
         WriteString('LastFolder',LastFolder);
    end;
  finally
    Free;
  end;
  {$ENDIF}

  TryChangeFolder(BackupDir);
end;

procedure TTeeDlgWizard.LabelURLClick(Sender: TObject);
begin
  GotoURL(Handle,LabelURL.Caption);
end;

procedure TTeeDlgWizard.RG3DClick(Sender: TObject);
begin
  tmpGallery.View3D:=RG3D.ItemIndex=1;
end;

procedure TTeeDlgWizard.tmpGallerySelectedChart(Sender: TObject);
{$IFNDEF NOUSE_BDE}
var tmp : TDataSet;
{$ENDIF}
begin
  PageControl.ActivePage := PageControl.Pages[pgPreviewChart];

  {$IFNDEF NOUSE_BDE}

  if RGDatabase.ItemIndex=0 then
  begin
    {$IFDEF CLX}
    tmp:=nil;
    {$ELSE}
    if StyleBDE then tmp:=Table1
                else {$IFDEF TEEENTERPRISE}tmp:=ADOQuery{$ELSE}tmp:=nil{$ENDIF}
    {$ENDIF}
  end
  else
     tmp:=nil;

  {$ENDIF}

  CreatePreviewChart;
  CreateSeries(Self,PreviewChart{$IFNDEF NOUSE_BDE},tmp{$ENDIF},True);

  CheckPreviewOptions;
  PageControl1.ActivePage:=TabPreviewChart;
  RefreshButtons;
end;

procedure TTeeDlgWizard.CheckPreviewOptions;
begin
  CB3DOption.Checked:=PreviewChart.View3D;
  CBShowLegendOption.Checked:=PreviewChart.Legend.Visible;
  CBShowMarksOption.Visible:=PreviewChart.SeriesCount>0;
  CBColorEach.Visible:=PreviewChart.SeriesCount>0;

  if PreviewChart.SeriesCount>0 then
  begin
    CBShowMarksOption.Checked:=PreviewChart.Series[0].Marks.Visible;
    CBColorEach.Checked:=PreviewChart.Series[0].ColorEachPoint;
  end;
end;

type
  TGalleryAccess=class(TChartGalleryPanel)
  {$IFDEF CLR}
  private
    procedure DoKeyDown(var Key: Word; Shift: TShiftState);
  end
  {$ENDIF}
  ;

{$IFDEF CLR}
procedure TGalleryAccess.DoKeyDown(var Key: Word; Shift: TShiftState);
begin
  KeyDown(Key,Shift);
end;
{$ENDIF}

procedure TTeeDlgWizard.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if PageControl.ActivePage=TabSheet1 then
     {$IFDEF CLR}
     TGalleryAccess(tmpGallery).DoKeyDown(Key,Shift);
     {$ELSE}
     TGalleryAccess(tmpGallery).KeyDown(Key,Shift);
     {$ENDIF}
end;

procedure TTeeDlgWizard.CBTablesChange(Sender: TObject);
begin
  NextButton.Enabled:=True;
end;

procedure TTeeDlgWizard.CBAliasChange(Sender: TObject);
begin
  {$IFNDEF NOUSE_BDE}

  Screen.Cursor:=crHourGlass;
  try
    try
      if StyleBDE then
         {$IFNDEF CLX}
         Session.GetTableNames(CBAlias.Text,'',True,False,CBTables.Items)
         {$ENDIF}
      else
      begin
      {$IFDEF TEEENTERPRISE}
        if CBAlias.Items.IndexOf(CBAlias.Text)<>-1 then
           ADOConn.ConnectionString:=CT_FILENAME+DataLinkDir+'\'+CBAlias.Text
        else
           ADOConn.ConnectionString:=CBAlias.Text;
        ADOConn.GetTableNames(CBTables.Items);
      {$ENDIF}
      end;
    except
      CBAlias.Text:='';
      CBTables.Clear;
    end;
  finally
    Screen.Cursor:=crDefault;
  end;

  {$ENDIF}
end;

Function TeeSelectFolder(const Caption,Root:String; var Folder:String):Boolean;
Var tmpDir : {$IFDEF K3}WideString
             {$ELSE}
             {$IFDEF D7}
               {$IFDEF CLX}WideString
               {$ELSE}String
               {$ENDIF}
             {$ELSE}String
             {$ENDIF}
             {$ENDIF};
begin
  tmpDir:='';
  result:=SelectDirectory(Caption,Root,tmpDir);
  if result then Folder:=tmpDir;
end;

procedure TTeeDlgWizard.SpeedButton1Click(Sender: TObject);
{$IFNDEF NOUSE_BDE}
Var tmpDir : String;
{$ENDIF}
begin
  {$IFNDEF NOUSE_BDE}
  if StyleBDE then
  begin
    tmpDir:=CBAlias.Text;
    if not DirectoryExists(tmpDir) then tmpDir:='';
    if TeeSelectFolder(TeeMsg_SelectFolder,'',tmpDir) then
    begin
      CBAlias.Text:=tmpDir;
      CBAliasChange(Self);
    end;
  end
  {$IFDEF TEEENTERPRISE}
  else
  begin
    if EditConnectionString(ADOConn) then
    begin
      CBAlias.Text:=ADOConn.ConnectionString;
      CBAliasChange(Self);
    end;
  end;
  {$ENDIF}
  {$ENDIF}
end;

procedure TTeeDlgWizard.CBDBStyleChange(Sender: TObject);
begin
  if StyleBDE then
    LabelAlias.Caption:=TeeMsg_BDEAlias
  else
  begin
    {$IFDEF TEEENTERPRISE}
    LabelAlias.Caption:=TeeMsg_ADOConnection;
    {$ENDIF}
  end;
  CBAlias.Style:=csDropDown;
  RefreshAlias;
end;

Procedure TTeeDlgWizard.RefreshAlias;
begin
  NextButton.Enabled:=False;
  CBAlias.Clear;
  CBTables.Clear;

  {$IFNDEF NOUSE_BDE}

  if StyleBDE then
  begin
    {$IFNDEF CLX}
    Session.GetAliasNames(CBAlias.Items);
    {$ENDIF}
    CBAlias.Text:=BackupDir;
  end
  {$IFDEF TEEENTERPRISE}
  else GetDataLinkFiles(CBAlias.Items,DataLinkDir);
  {$ENDIF}

  {$ENDIF}
end;

Function TTeeDlgWizard.StyleBDE:Boolean;
begin
  {$IFDEF TEEENTERPRISE}
  result:=CBDBStyle.ItemIndex=0;
  {$ELSE}
  result:=True;
  {$ENDIF}
end;

procedure TTeeDlgWizard.FormDestroy(Sender: TObject);
begin
  {$IFNDEF NOUSE_BDE}

  {$IFDEF TEEENTERPRISE}
  ADOQuery.Free;
  ADOConn.Free;
  {$ENDIF}

  {$ENDIF}
end;

procedure TTeeDlgWizard.CBColorEachClick(Sender: TObject);
var t : Integer;
begin
  for t:=0 to PreviewChart.SeriesCount-1 do
     PreviewChart.Series[t].ColorEachPoint:=CBColorEach.Checked;
end;

procedure TTeeDlgWizard.BBrowseClick(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    EFile.Text:=OpenDialog1.FileName;
    LastFolder:=ExtractFilePath(EFile.Text);
  end;
end;

procedure TTeeDlgWizard.RBFileClick(Sender: TObject);
begin
  EFile.Enabled:=RBFile.Checked;
  RBWeb.Checked:=not RBFile.Checked;
  EWeb.Enabled:=not EFile.Enabled;
  BBrowse.Enabled:=EFile.Enabled;
  EFileChange(Sender);
end;

procedure TTeeDlgWizard.EFileChange(Sender: TObject);
begin
  NextButton.Enabled:=True;
end;

procedure TTeeDlgWizard.CopyPreviewChart(var Chart:TCustomChart);
var Stream : TMemoryStream;
begin
  Stream:=TMemoryStream.Create;
  try
    SaveChartToStream(PreviewChart,Stream);
    Stream.Position:=0;
    LoadChartFromStream(Chart,Stream);
  finally
    Stream.Free;
  end;
end;

procedure TTeeDlgWizard.FormResize(Sender: TObject);
begin
  with tmpGallery do
  SetBounds(Left,Top,TabSheet1.Width-20,TabSheet1.Height-70);

  with RGDatabase do
    SetBounds((TabStyle.Width-Width) div 2,Top,Width,Height);
end;

procedure TTeeDlgWizard.CBSmoothClick(Sender: TObject);
begin
  tmpGallery.Smooth:=CBSmooth.Checked;
end;

procedure TTeeDlgWizard.BThemeClick(Sender: TObject);
begin
  if Assigned(TeeThemeSelectorHook) then
  begin
    if PreviewChart.SeriesCount=0 then
       CreateSeries(Self,PreviewChart,{$IFNDEF NOUSE_BDE}nil,{$ENDIF}True);

    ThemeClass:=TeeThemeSelectorHook(PreviewChart);
    tmpGallery.UseTheme(ThemeClass);
  end;
end;

end.

⌨️ 快捷键说明

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