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

📄 teeeditcha.pas

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

  {$IFDEF D5}
  if AllowChange and HighLightTabs then MainPage.ActivePage.HighLighted:=False;
  {$ENDIF}
end;

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

procedure TChartEditForm.SubPageChanging(Sender: TObject;
  var AllowChange: Boolean);
begin
  {$IFDEF D5}
  if HighLightTabs then SubPage.ActivePage.Highlighted:=False;
  {$ENDIF}
end;

procedure TChartEditForm.SBGridTextClick(Sender: TObject);
begin
  ChartGrid1.ShowLabels:=SBGridText.Down;
end;

procedure TChartEditForm.SBGridColClick(Sender: TObject);
begin
  ChartGrid1.ShowColors:=SBGridCol.Down;
end;

procedure TChartEditForm.SBGrid3DClick(Sender: TObject);
begin
  ChartGrid1.Grid3DMode:=SBGrid3D.Down;
end;

procedure TChartEditForm.SBGridXClick(Sender: TObject);
begin
  if SBGridX.Down then
     ChartGrid1.ShowXValues:=cgsYes
  else
     ChartGrid1.ShowXValues:=cgsNo
end;

procedure TChartEditForm.Deleterow1Click(Sender: TObject);
begin
  ChartGrid1.Delete
end;

Function TChartEditForm.CurrentGroup:TSeriesGroup;
begin
  if (DeltaGroup=1) and (Groups.ItemIndex=0) then
     result:=nil
  else
     result:=Chart.SeriesList.Groups[Groups.ItemIndex-DeltaGroup];
end;

procedure TChartEditForm.GroupsClick(Sender: TObject);
begin
  LBSeries.SeriesGroup:=CurrentGroup;
  EnableGroupButtons;
end;

procedure TChartEditForm.EnableGroupButtons;
begin
  BDeleteGroup.Enabled:=Groups.ItemIndex>=DeltaGroup;
  BRenameGroup.Enabled:=BDeleteGroup.Enabled;
end;

procedure TChartEditForm.GroupsClickCheck(Sender: TObject);
begin
  if (DeltaGroup=1) and (Groups.ItemIndex=0) then
  begin
    Chart.SeriesList.AllActive:=Groups.Checked[Groups.ItemIndex];
    FillGroups;
  end
  else
  begin
    {$IFDEF LCL}
    if Groups.Checked[Groups.ItemIndex] then
       CurrentGroup.Active:=gaYes
    else
       CurrentGroup.Active:=gaNo;
    {$ELSE}
    case Groups.State[Groups.ItemIndex] of
      cbChecked: CurrentGroup.Active:=gaYes;
      cbUnChecked: CurrentGroup.Active:=gaNo;
      cbGrayed: CurrentGroup.Active:=gaSome;
    end;
    {$ENDIF}

    if DeltaGroup=1 then
       Groups.Checked[0]:=Chart.SeriesList.AllActive;
  end;

  EnableGroupButtons;
end;

procedure TChartEditForm.LBSeriesChangeActive(Sender: TChartListBox;
  Series: TCustomChartSeries);
begin
  FillGroups;
end;

procedure TChartEditForm.GroupsDragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
var tmp : Integer;
begin
  tmp:=Groups.ItemAtPos(TeePoint(X,Y),True);
  Accept:=(tmp<>-1) and (Source is TChartListBox);
  if Accept and (tmp>=DeltaGroup) then
     Accept:=Accept and
       (Chart.SeriesList.Groups[tmp-DeltaGroup].Series.IndexOf(TChartListBox(Source).SelectedSeries)=-1);
end;

procedure TChartEditForm.GroupsDragDrop(Sender, Source: TObject; X,
  Y: Integer);

   Procedure RefreshGroups(Index:Integer);
   begin
     FillGroups;
     Groups.ItemIndex:=Index;
     GroupsClick(Groups);
   end;

var tmp : Integer;
    tmpSeries : TChartSeries;
begin
  tmp:=Groups.ItemAtPos(TeePoint(X,Y),True);

  if (tmp<>-1) and (Source is TChartListBox) then
  begin
    tmpSeries:=TChartListBox(Source).SelectedSeries;

    if (tmp=0) and (DeltaGroup=1) then
    begin
      if Groups.ItemIndex>=DeltaGroup then
         CurrentGroup.Series.Remove(tmpSeries);
      RefreshGroups(tmp);
    end
    else
    with Chart.SeriesList.Groups[tmp-DeltaGroup].Series do
    begin
      if IndexOf(tmpSeries)=-1 then
      begin
        Add(tmpSeries);
        if Groups.ItemIndex>=DeltaGroup then
           CurrentGroup.Series.Remove(tmpSeries);
        RefreshGroups(tmp);
      end;
    end;
  end;
end;

procedure TChartEditForm.BAddGroupClick(Sender: TObject);
var tmpSt : String;
begin
  tmpSt:='';
  if InputQuery(TeeMsg_AddNewGroup,TeeMsg_GroupName,tmpSt) then
  begin
    Chart.SeriesList.AddGroup(tmpSt);
    FillGroups;
    Groups.ItemIndex:=Groups.Items.Count-1;
    GroupsClick(Self);
  end;
end;

procedure TChartEditForm.BRenameGroupClick(Sender: TObject);
var tmpSt : String;
begin
  tmpSt:=Groups.Items[Groups.ItemIndex];
  if InputQuery(TeeMsg_ChangeGroupName,TeeMsg_GroupName,tmpSt) then
  begin
    CurrentGroup.Name:=tmpSt;
    FillGroups;
  end;
end;

procedure TChartEditForm.BDeleteGroupClick(Sender: TObject);
begin
  if TeeYesNoDelete(Groups.Items[Groups.ItemIndex],Self) then
  begin
    CurrentGroup.Free;
    FillGroups;
  end;
end;

procedure TChartEditForm.TreeChange(Sender: TObject; Node: TTreeNode);

  procedure SetMainTab(TabSheet: TTabSheet; SynchroNode:Boolean=True);
  begin
    MainPage.ActivePage.Parent:=MainPage;
    MainPage.ActivePage:=TabSheet;

    if TabSheet=TabTools then ReparentTools;

    if SynchroNode then
       MainPageChange(MainPage);
  end;

  procedure SetSubTab(TabSheet: TTabSheet; SynchroNode:Boolean=True);
  begin
    SubPage.Parent:=TabChart;
    SubPage.ActivePage.Parent:=SubPage;
    SubPage.ActivePage:=TabSheet;

    if TabSheet=TabAxis then ReparentAxis
    else
    if TabSheet=TabTitle then ReparentTitle;

    if SynchroNode then SubPageChange(SubPage)
                   else SubPageChange(Self);
  end;

begin
  while TreePanel.ControlCount>0 do TreePanel.Controls[0].Parent:=nil;

  if Assigned(Node.Data) then
     if TObject(Node.Data) is TTabSheet then
     with TTabSheet(Node.Data) do
     begin
       if PageControl=MainPage then SetMainTab(TTabSheet(Node.Data))
       else
       if PageControl=SubPage then SetSubTab(TTabSheet(Node.Data));

       Parent:=TreePanel;
       Align:=alClient;

       if TTabSheet(Node.Data)=TabSeriesList then
          if LBSeries.CanFocus then
          begin
            LBSeries.SetFocus;
            LBSeries.Repaint;
          end;
     end
     else
     if TObject(Node.Data) is TChartSeries then
        TreeSelectSeries(TChartSeries(Node.Data))
     else
     if TObject(Node.Data) is TPageControl then
     begin
       ResetParentTab(SubPage);
       SubPage.Parent:=TreePanel;
       SubPage.Align:=alClient;
       TabSeriesList.TabVisible:=False;
       SubPageChange(Self);
     end
     else

     {$IFNDEF TEELITE}
     if TObject(Node.Data) is TTeeCustomTool then
     begin
       SetMainTab(TabTools,False);

       if TabTools.ControlCount=0 then  // 7.0
          CreateToolsForm;

       with TFormTeeTools(TabTools.Controls[0]) do
       begin
         with LBTools do
         begin
           if Items.Count=0 then FormShow(Self);
           ItemIndex:=Items.IndexOfObject(TTeeCustomTool(Node.Data));
         end;

         LBToolsClick(LBTools);
         PanelToolEditor.Parent:=TreePanel;
       end;
     end
     else
     {$ENDIF}

     if TObject(Node.Data) is TChartAxis then
     begin
       SetSubTab(TabAxis,False);

       with TFormTeeAxis(TabAxis.Controls[0]) do
       begin
         TheAxis:=TChartAxis(Node.Data);
         LBAxes.ItemIndex:=Node.Index;
         PageAxisChange(PageAxis);
         PageAxis.Parent:=TreePanel;
       end;
     end
     else
     if TObject(Node.Data) is TChartTitle then
     begin
       SetSubTab(TabTitle,False);

       with TFormTeeTitle(TabTitle.Controls[0]) do
       begin
         TheTitle:=TChartTitle(Node.Data);
         CBTitles.ItemIndex:=Node.Index;
         PageControlTitle.Parent:=TFormTeeTitle(TabTitle.Controls[0]);
         CBTitlesChange(CBTitles);
         PageControlTitle.Parent:=TreePanel;
       end;
     end;
end;

procedure TChartEditForm.TreeEditing(Sender: TObject; Node: TTreeNode;
  var AllowEdit: Boolean);
begin
  AllowEdit:=TObject(Node) is TChartSeries;
end;

{$IFNDEF TEELITE}
procedure TChartEditForm.AddedTool(Sender:TObject);
begin
  if Assigned(TreeNodeTools) then
     Tree.Items.AddChildObject(TreeNodeTools,TTeeCustomTool(Sender).Description,Sender);
end;

procedure TChartEditForm.DeletedTool(Sender:TObject);
var t: Integer;
begin
  if Assigned(TreeNodeTools) then
  with TreeNodeTools do
  for t:=0 to Count-1 do
      if {$IFDEF LCL}Items{$ELSE}Item{$ENDIF}[t].Data=Sender then
      begin
        {$IFDEF LCL}Items{$ELSE}Item{$ENDIF}[t].Free;
        break;
      end;
end;
{$ENDIF}

procedure TChartEditForm.FormDestroy(Sender: TObject);
begin
  // Tree mode fix at destroy
  if Assigned(Tree) and Tree.Visible then
  begin
    ResetParentTab(MainPage);
    ResetParentTab(SubPage);
    Width:=OldWidth;
  end;

  {$IFNDEF LINUX}
  if Assigned(Chart) and (RememberPosition or RememberSize) then
    with TRegistry.Create do
    try
      if OpenKey(TeeMsg_EditorKey,True) then
      begin
        if RememberPosition then
        begin
          WriteInteger('Left',Self.Left);
          WriteInteger('Top',Self.Top);
        end;

        if RememberSize then
        begin
          if Self.Width<>StrToInt(TeeMsg_DefaultEditorSize) then
             WriteInteger('Width',Self.Width);

          if Self.Height<>StrToInt(TeeMsg_DefaultEditorHeight) then
             WriteInteger('Height',Self.Height);

          if Assigned(Tree) and Tree.Visible then
             WriteInteger('TreeWidth',Self.Tree.Width);
        end;
      end;
    finally
      Free;
    end;
  {$ENDIF}
end;

procedure TChartEditForm.FormResize(Sender: TObject);
begin
  if Tree.Visible then
     OldWidth:=Width-Tree.Width-TreeSplitter.Width;
end;

procedure TChartEditForm.Insertrow1Click(Sender: TObject);
begin
  ChartGrid1.Insert;
end;

procedure TChartEditForm.CBNamesClick(Sender: TObject);
begin
  // Fix for VCL TCustomComboBoxStrings bug 7.02
  if not Assigned(TabSeries.Parent) then
     TabSeries.Parent:=MainPage;

  LBSeries.ShowSeriesNames:=CBNames.Checked;

  if CBNames.Checked then
     BRenameSeries.Caption:='&Name...'  // do not localize
  else
     BRenameSeries.Caption:='&Title...'; // do not localize

  TeeTranslateControl(BRenameSeries);
end;

{$IFNDEF CLR}
type
  TChartGridAccess=class(TChartGrid);
{$ENDIF}

procedure TChartEditForm.PopupDataPopup(Sender: TObject);
var tmpColor : TColor;
begin
  EditColor1.Visible:=Assigned({$IFNDEF CLR}TChartGridAccess{$ENDIF}(ChartGrid1).GetSeriesColor(tmpColor));

  DefaultColor1.Visible:=EditColor1.Visible and (tmpColor<>clTeeColor);
  Makenullpoint1.Visible:=EditColor1.Visible and (tmpColor<>clNone);
  N1.Visible:=EditColor1.Visible;
end;

procedure TChartEditForm.EditColor1Click(Sender: TObject);
begin
  ChartGrid1.ChangeColor;
end;

procedure TChartEditForm.DefaultColor1Click(Sender: TObject);
begin
  ChartGrid1.ChangeColor(clTeeColor);
end;

procedure TChartEditForm.Makenullpoint1Click(Sender: TObject);
begin
  ChartGrid1.ChangeColor(clNone);
end;

procedure TChartEditForm.extfont1Click(Sender: TObject);
begin
  EditTeeFont(Self,ChartGrid1.Font);

  // 7.01
  with TBitmap.Create,Canvas do
  try
    Font.Assign(ChartGrid1.Font);
    ChartGrid1.DefaultRowHeight:=2+TextHeight('W');
  finally
    Free;
  end;
end;

initialization
  TeeOnShowEditor:=TList.Create;
  RegisterClass(TChartEditForm);
finalization
  TeeOnShowEditor.Free;
end.

⌨️ 快捷键说明

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