📄 iplotmanagers.pas
字号:
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 + -