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

📄 teeedit.pas

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

procedure TChartEditor.ChangeSeriesOrder(Sender:TChartListBox;
                                         Series1,Series2:TCustomChartSeries);
begin
  if Assigned(FOnChangeOrder) then FOnChangeOrder(Sender,Series1,Series2);
end;

procedure TChartEditor.Execute;
Var TheForm : TChartEditForm;
    OldAuto : Boolean;
begin
  if Assigned(FChart) then
  begin
    TheForm:=TChartEditForm.Create(nil);

    With TheForm do
    try
      Tree.Visible:=FTree;
      
      RememberPosition:=Self.RememberPosition;  // set before setting chart
      Caption:=Self.Title;

      EditorOptions:=Self.Options;  // Before setting Chart !

      Chart:=Self.Chart;

      HighLightTabs:=Self.FHighLight;
      TheEditSeries:=Self.Series;

      CheckHelpFile;
      TheActivePageIndex:=Ord(FDefaultTab);
      TheHiddenTabs:=FHideTabs;
      LBSeries.OnChangeOrder:=ChangeSeriesOrder; // 5.03
      if Assigned(Self.FOnShow) then Self.FOnShow(TheForm);

      OldAuto:=True;
      if not Self.FAutoRepaint then
      begin
        OldAuto:=FChart.AutoRepaint;
        FChart.AutoRepaint:=False;
      end;

      TeeTranslateControl(TheForm);
      ShowModal;

      if not Self.FAutoRepaint then
      begin
        FChart.AutoRepaint:=OldAuto;
        FChart.Repaint;
      end;
    finally
      if Assigned(Self.FOnClose) then Self.FOnClose(TheForm);
      Free;
    end;
    FChart.CancelMouse:=True;
  end;
end;

procedure TChartEditor.SetSeries(const Value: TChartSeries);
begin
  if FSeries<>Value then
  begin
    {$IFDEF D5}
    if Assigned(FSeries) then FSeries.RemoveFreeNotification(Self);
    {$ENDIF}

    FSeries:=Value;

    if Assigned(Series) then
    begin
      FSeries.FreeNotification(Self);
      if Assigned(Chart) and (Series.ParentChart<>Chart) then
         Chart:=TCustomChart(Series.ParentChart);
    end;
  end;
end;

procedure TChartEditor.Notification( AComponent: TComponent;
                                     Operation: TOperation);
begin
  inherited;
  if (Operation=opRemove) and Assigned(FSeries) and (AComponent=FSeries) then
     Series:=nil;
end;

procedure TChartEditor.SetChart(const Value: TCustomChart);
begin
  inherited;
  if Assigned(Chart) and Assigned(Series) and (Series.ParentChart<>Chart) then
     Series:=nil;
end;

{ TChartPreviewer }
Constructor TChartPreviewer.Create(AOwner:TComponent);
begin
  inherited;
  FOptions:=DefaultChartPreviewOptions;
  FPaperColor:=clWhite;
  FWindowState:=wsNormal;
end;

procedure TChartPreviewer.Execute;
var OldPrintTeePanel : Boolean;
begin
  if Assigned(FChart) then
  begin
    TheForm:=TChartPreview.Create(nil);
    with TheForm do
    try
      if Self.FTitle<>'' then Caption:=Self.FTitle;
      TeePreviewPanel1.Panel:=Self.FChart;
      TeePreviewPanel1.OnAfterDraw:=Self.OnAfterDraw;
      WindowState:=Self.FWindowState;
      if not (cpoChangePrinter in Self.FOptions) then CBPrinters.Enabled:=False;
      if not (cpoSetupPrinter in Self.FOptions) then BSetupPrinter.Enabled:=False;
      TeePreviewPanel1.AllowResize:=(cpoResizeChart in Self.FOptions);
      TeePreviewPanel1.AllowMove:=(cpoMoveChart in Self.FOptions);
      if not (cpoChangeDetail in Self.FOptions) then ChangeDetailGroup.Enabled:=False;
      if not (cpoChangePaperOrientation in Self.FOptions) then Orientation.Enabled:=False;
      if not (cpoChangeMargins in Self.FOptions) then
      begin
        GBMargins.Enabled:=False;
        BReset.Enabled:=False;
      end;
      With TeePreviewPanel1.Panel do
      if PrintProportional then
         PrintProportional:=(cpoProportional in Self.FOptions);
      TeePreviewPanel1.PaperColor:=Self.FPaperColor;
      TeePreviewPanel1.DragImage:=(cpoDragChart in Self.FOptions);
      OldPrintTeePanel:=PrintTeePanel;
      PrintTeePanel:=(cpoPrintPanel in Self.FOptions);
      TeePreviewPanel1.AsBitmap:=(cpoAsBitmap in Self.FOptions);
      if Assigned(Self.FOnShow) then Self.FOnShow(TheForm);
      ShowModal;
      PrintTeePanel:=OldPrintTeePanel;
    finally
      if Assigned(Self.FOnClose) then Self.FOnClose(TheForm);
      Free;
      TheForm:=nil;
      Self.FChart.Repaint;
    end;
    Self.FChart.CancelMouse:=True;
  end;
end;

function TChartPreviewer.GetPreview: TTeePreviewPanel;
begin
  if Assigned(TheForm) then
     result:=TheForm.TeePreviewPanel1
  else
     result:=nil;
end;

{ TChartEditorPanel }
Constructor TChartEditorPanel.Create(AOwner:TComponent);
begin
  inherited;
  BevelOuter:=bvLowered;
  Width :=409;
  Height:=291;

  if not (csDesigning in ComponentState) then
  begin
    FEditor:=TChartEditForm.Create(Self);

    TeeTranslateControl(FEditor);

    With FEditor do
    begin
      RememberPosition:=False;
      RememberSize:=False;

      BorderStyle:=TeeFormBorderStyle;
      PanBottom.Visible:=False;

      {$IFNDEF D5}
      Show;
      {$ENDIF}

      Align:=alClient;
      Parent:=Self;

      {$IFDEF D5}
      Show;
      {$ENDIF}
    end;
  end;
end;

procedure TChartEditorPanel.Notification( AComponent: TComponent;
                                          Operation: TOperation);
begin
  inherited;
  if (Operation=opRemove) and Assigned(FChart) and (AComponent=FChart) then
     Chart:=nil;
end;

procedure TChartEditorPanel.SelectUnderMouse;
Var P : TChartClickedPart;

  Procedure Select(ATab:TTabSheet);
  begin
    With Editor do
    begin
      MainPage.ActivePage:=TabChart;
      SubPage.ActivePage:=ATab;
      SubPageChange(Self);
    end;
  end;

  Procedure SelectTitle(ATitle:TChartTitle);
  begin
    Select(Editor.TabTitle);
    With Editor.TabTitle.Controls[0] as TFormTeeTitle do
    begin
      TheTitle:=ATitle;
      FormShow(Self);
    end;
  end;

begin
  if Assigned(Chart) then
  begin
    Chart.CalcClickedPart(Chart.GetCursorPos,P);
    Case P.Part of
      cpLegend: With Editor do
                begin
                  MainPage.ActivePage:=TabChart;
                  SubPage.ActivePage:=TabLegend;
                  SubPageChange(Self);
                end;
      cpSeriesMarks,
      cpSeries: With Editor do
                begin
                  MainPage.ActivePage:=TabSeries;
                  MainPageChange(Self);
                  TheEditSeries:=P.ASeries;
                  TheFormSeries.TheSeries:=TheEditSeries;
                  LBSeries.FillSeries(TheEditSeries);
                  SetTabSeries;
                  if P.Part=cpSeriesMarks then
                  With TheFormSeries do
                     PageSeries.ActivePage:=TabMarks;
                end;
        cpAxis: With Editor do
                begin
                  MainPage.ActivePage:=TabChart;
                  TheAxis:=P.AAxis;
                  SubPage.ActivePage:=TabAxis;
                  SubPageChange(Self);
                  With (TabAxis.Controls[0] as TFormTeeAxis) do
                  begin
                    TheAxis:=P.AAxis;
                    FormShow(Self);
                  end;
                end;
       cpTitle : SelectTitle(Chart.Title);
    cpSubTitle : SelectTitle(Chart.SubTitle);
        cpFoot : SelectTitle(Chart.Foot);
     cpSubFoot : SelectTitle(Chart.SubFoot);
    else
      Select(Editor.TabPanel);
    end;
  end;
end;

{$IFNDEF CLX}
procedure TChartEditorPanel.CMShowingChanged(var Message: TMessage);
begin
  inherited;

  if Assigned(Parent) then
     Parent.UpdateControlState;
end;
{$ENDIF}

Procedure TChartEditorPanel.SetChart(Value:TCustomChart);
begin
  FChart:=Value;
  if Assigned(FEditor) then FEditor.Chart:=FChart;
end;

end.

⌨️ 快捷键说明

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