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

📄 iplotmanagers.pas

📁 iocopm3.04源码,一套很好的工控开发工具
💻 PAS
📖 第 1 页 / 共 4 页
字号:
begin
  Result := 'Toolbar';
end;
//****************************************************************************************************************************************************
{TiPlotLegendManager}
//****************************************************************************************************************************************************
function TiPlotLegendManager.CreateObject : TiPlotObject;
begin
  Result := TiPlotLegend.Create(FOwner, FOnChange, FOnInsert, FOnRemove, FOnRename);
end;
//****************************************************************************************************************************************************
procedure TiPlotLegendManager.NotificationInsert(Sender: TObject);
var
  iPlotLegend : TiPlotLegend;
begin
  if Sender is TiPlotLegend then
    begin
      iPlotLegend := Sender as TiPlotLegend;
      InsertObject(iPlotLegend);
      if iPlotLegend.Name = '' then
        begin
          iPlotLegend.Name := GetNextName;
        end;
    end;
end;
//****************************************************************************************************************************************************
function TiPlotLegendManager.GetItem(Index: Integer): TiPlotLegend;
begin
  Result := GetObject(Index) as TiPlotLegend;
end;
//****************************************************************************************************************************************************
function TiPlotLegendManager.GetName: String;
begin
  Result := 'Legend';
end;
//****************************************************************************************************************************************************
{TiPlotXAxisManager}
//****************************************************************************************************************************************************
function TiPlotXAxisManager.CreateObject : TiPlotObject;
begin
  Result := TiPlotXAxis.Create(FOwner, FOnChange, FOnInsert, FOnRemove, FOnRename);
end;
//****************************************************************************************************************************************************
procedure TiPlotXAxisManager.NotificationInsert(Sender: TObject);
var
  iPlotXAxis : TiPlotXAxis;
begin
  if Sender is TiPlotXAxis then
    begin
      iPlotXAxis := Sender as TiPlotXAxis;
      InsertObject(iPlotXAxis);
      if iPlotXAxis.Name = '' then
        begin
          iPlotXAxis.Name  := GetNextName;
          iPlotXAxis.Title := iPlotXAxis.Name;
        end;
    end;
end;
//****************************************************************************************************************************************************
function TiPlotXAxisManager.GetItem(Index: Integer): TiPlotXAxis;
begin
  Result := GetObject(Index) as TiPlotXAxis;
end;
//****************************************************************************************************************************************************
function TiPlotXAxisManager.GetName: String;
begin
  Result := 'X-Axis';
end;
//****************************************************************************************************************************************************
{ TiPlotYAxisManager }
//****************************************************************************************************************************************************
function TiPlotYAxisManager.CreateObject : TiPlotObject;
begin
  Result := TiPlotYAxis.Create(FOwner, FOnChange, FOnInsert, FOnRemove, FOnRename);
end;
//****************************************************************************************************************************************************
procedure TiPlotYAxisManager.NotificationInsert(Sender: TObject);
var
  iPlotYAxis : TiPlotYAxis;
begin
  if Sender is TiPlotYAxis then
    begin
      iPlotYAxis := Sender as TiPlotYAxis;
      InsertObject(iPlotYAxis);
      if iPlotYAxis.Name = '' then
        begin
          iPlotYAxis.Name  := GetNextName;
          iPlotYAxis.Title := iPlotYAxis.Name;
        end;
    end;
end;
//****************************************************************************************************************************************************
function TiPlotYAxisManager.GetItem(Index: Integer): TiPlotYAxis;
begin
  Result := GetObject(Index) as TiPlotYAxis;
end;
//****************************************************************************************************************************************************
function TiPlotYAxisManager.GetName: String;
begin
  Result := 'Y-Axis';
end;
//****************************************************************************************************************************************************
{TiPlotChannelManager}
//****************************************************************************************************************************************************
function TiPlotChannelManager.CreateObject : TiPlotObject;
begin
  Result := FChannelClass.Create(FOwner, FOnChange, FOnInsert, FOnRemove, FOnRename);
end;
//****************************************************************************************************************************************************
procedure TiPlotChannelManager.NotificationInsert(Sender: TObject);
var
  iPlotChannel : TiPlotChannelCustom;
begin
  if Sender is TiPlotChannelCustom then
    begin
      iPlotChannel := Sender as TiPlotChannelCustom;
      InsertObject(iPlotChannel);
      if iPlotChannel.Name = '' then
        begin
          iPlotChannel.Name      := GetNextName;
          iPlotChannel.TitleText := iPlotChannel.Name;
          iPlotChannel.Color     := GetNextChannelColor;

          if Assigned(FXAxisManager) then if FXAxisManager.Count <> 0 then iPlotChannel.XAxisName := FXAxisManager.Items[0].Name;
          if Assigned(FYAxisManager) then if FYAxisManager.Count <> 0 then iPlotChannel.YAxisName := FYAxisManager.Items[0].Name;
        end;
    end;
end;
//****************************************************************************************************************************************************
procedure TiPlotChannelManager.NotificationRemove(Sender: TObject);
begin
  inherited;
  if Sender = FXAxisManager then FXAxisManager := nil;
  if Sender = FYAxisManager then FYAxisManager := nil;
end;
//****************************************************************************************************************************************************
function TiPlotChannelManager.GetItem(Index: Integer): TiPlotChannelCustom;
begin
  Result := GetObject(Index) as TiPlotChannelCustom;
end;
//****************************************************************************************************************************************************
function TiPlotChannelManager.GetName: String;
begin
  Result := 'Channel';
end;
//****************************************************************************************************************************************************
function TiPlotChannelManager.GetNextChannelColor: TColor;
var
  ColorCountList   : TStringList;
  iColorCount      : TiColorCountObject;
  x, y             : Integer;
  iChannelObject   : TiPlotChannelCustom;
  LowestCount      : Integer;
begin
  Result := clRed;

  if Count > 1 then
    begin
      ColorCountList := TStringList.Create;
      ColorCountList.Sorted := False;

      iColorCount := TiColorCountObject.Create; iColorCount.Color := clRed;    ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := clYellow; ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := clBlue;   ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := clFuchsia;ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := clAqua;   ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := clLime;   ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := clWhite;  ColorCountList.AddObject('', iColorCount);

      iColorCount := TiColorCountObject.Create; iColorCount.Color := $000080;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $008000;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $008080;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $800000;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $800080;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $808000;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $808080;  ColorCountList.AddObject('', iColorCount);

      iColorCount := TiColorCountObject.Create; iColorCount.Color := $0000C0;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $00C000;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $00C0C0;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $C00000;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $C000C0;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $C0C000;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $C0C0C0;  ColorCountList.AddObject('', iColorCount);

      iColorCount := TiColorCountObject.Create; iColorCount.Color := $0080FF;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $8000FF;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $8080FF;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $FF0080;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $FF8000;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $FF8080;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $00FF80;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $80FF00;  ColorCountList.AddObject('', iColorCount);
      iColorCount := TiColorCountObject.Create; iColorCount.Color := $80FF80;  ColorCountList.AddObject('', iColorCount);

      for x := 0 to Count-1 do
        begin
          iChannelObject := Items[x];
          for y := 0 to ColorCountList.Count -1 do
            begin
              iColorCount := (ColorCountList.Objects[y] as TiColorCountObject);
              if iChannelObject.Color = iColorCount.Color then iColorCount.Count := iColorCount.Count + 1;
            end;
        end;

      LowestCount := Maxint;
      for x := 0 to ColorCountList.Count -1 do
        begin
          iColorCount := (ColorCountList.Objects[x] as TiColorCountObject);
          if iColorCount.Count < LowestCount then LowestCount := iColorCount.Count;
        end;

      for x := 0 to ColorCountList.Count -1 do
        begin
          iColorCount := (ColorCountList.Objects[x] as TiColorCountObject);
          if iColorCount.Count = LowestCount then
            begin
              Result := iColorCount.Color;
              Break;
            end;
        end;

      while ColorCountList.Count <> 0 do
        begin
          ColorCountList.Objects[0].Free;
          ColorCountList.Delete(0);
        end;
      ColorCountList.Free;
  end;
end;
//****************************************************************************************************************************************************
{ TiPlotDataViewManager }
//****************************************************************************************************************************************************
function TiPlotDataViewManager.CreateObject : TiPlotObject;
begin
  Result := TiPlotDataView.Create(FOwner, FOnChange, FOnInsert, FOnRemove, FOnRename);
end;
//****************************************************************************************************************************************************
procedure TiPlotDataViewManager.NotificationInsert(Sender: TObject);
var
  iPlotDataView : TiPlotDataView;
begin
  if Sender is TiPlotDataView then
    begin
      iPlotDataView := Sender as TiPlotDataView;
      InsertObject(iPlotDataView);
      if iPlotDataView.Name = '' then
        begin
          iPlotDataView.Name := GetNextName;

          if Assigned(FXAxisManager) then if FXAxisManager.Count <> 0 then iPlotDataView.GridXAxisName := FXAxisManager.Items[0].Name;
          if Assigned(FYAxisManager) then if FYAxisManager.Count <> 0 then iPlotDataView.GridYAxisName := FYAxisManager.Items[0].Name;
        end;
    end;
end;
//****************************************************************************************************************************************************
procedure TiPlotDataViewManager.NotificationRemove(Sender: TObject);
begin
  inherited;
  if Sender = FXAxisManager then FXAxisManager := nil;
  if Sender = FYAxisManager then FYAxisManager := nil;
end;
//****************************************************************************************************************************************************
function TiPlotDataViewManager.GetItem(Index: Integer): TiPlotDataView;
begin
  Result := GetObject(Index) as TiPlotDataView;
end;
//****************************************************************************************************************************************************
function TiPlotDataViewManager.GetName: String;
begin
  Result := 'Data View';
end;

⌨️ 快捷键说明

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