📄 realchart.pas
字号:
unit RealChart;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, ComCtrls, TeEngine, Series, TeeProcs, Chart,wsTypes,wsCores,
StdCtrls, Buttons;
type
TfrmRealChart = class(TForm)
StatusBar1: TStatusBar;
Panel1: TPanel;
Timer1: TTimer;
ScrollBox1: TScrollBox;
Chart1: TChart;
Series1: TBarSeries;
RadioGroupChart: TRadioGroup;
Series2: TBarSeries;
Series3: TBarSeries;
Series4: TBarSeries;
Series6: TBarSeries;
Series7: TBarSeries;
Series5: TBarSeries;
SpeedButton1: TSpeedButton;
CheckBox1: TCheckBox;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure RadioGroupChartClick(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmRealChart: TfrmRealChart;
implementation
{$R *.DFM}
procedure TfrmRealChart.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmRealChart.FormCreate(Sender: TObject);
var
i:Integer;
begin
Top:=1;
left:=542;
Height:=450;
Width:=260;
RadioGroupChart.ItemIndex:=0;
if StateInfo.MaxExtensionCount<=10 then
Chart1.width:=101*StateInfo.MaxExtensionCount
else
Chart1.width:=58*StateInfo.MaxExtensionCount;
Chart1.AllowZoom:=False;
Chart1.AllowPanning:=pmVertical;
Chart1.Title.Text.Clear;
Chart1.Title.Text.Add('重力柱状图');
Chart1.Legend.Visible:=CheckBox1.Checked;
//Chart1.LeftAxis.Visible:=True;
//Chart1.BottomAxis.Visible:=True;
//Chart1.TopAxis.Visible:=False;
//Chart1.RightAxis.Visible:=False;
With Series1 do
begin
Clear;
Series2.Clear;
Series3.Clear;
Series4.Clear;
Series5.Clear;
Series6.Clear;
Series7.Clear;
for i:=0 to MaxExtensionCount-1 do
begin
if AllExtension[i].ExtensionID<>'' then
begin
Add(AllExtension[i].Gravity{, AllExtension[i].ExtensionID,clWhite});
Series3.Add(StandardG[i].Value*2{, StandardG[i].ExtensionID,clRed});
Series4.Add(StandardG[i].Value*StateInfo.UpperLimit16{, {StandardG[i].ExtensionID,clYellow});
Series2.Add(StandardG[i].Value*StateInfo.UpperLimit13{, {StandardG[i].ExtensionID,clGreen});
Series5.Add(StandardG[i].Value{, {StandardG[i].ExtensionID'',clGreen});
Series7.Add(StandardG[i].Value*StateInfo.LowLimit07{, StandardG[i].ExtensionID,clYellow});
Series6.Add(StandardG[i].Value*StateInfo.LowLimit04{, StandardG[i].ExtensionID,clRed});
end;
end;
end;
end;
procedure TfrmRealChart.Timer1Timer(Sender: TObject);
var
i:Integer;
begin
With Series1 do
begin
Clear;
Series2.Clear;
Series3.Clear;
Series4.Clear;
Series6.Clear;
Series7.Clear;
Series5.Clear;
if RadioGroupChart.ItemIndex=0 then
begin
for i:=0 to MaxExtensionCount-1 do
begin
if AllExtension[i].ExtensionID<>'' then
begin
Add(AllExtension[i].Gravity{, AllExtension[i].ExtensionID ,clWhite});
Series3.Add(StandardG[i].Value*2{,StandardG[i].ExtensionID,clRed});
Series4.Add(StandardG[i].Value*StateInfo.UpperLimit16{,StandardG[i].ExtensionID,clYellow});
Series2.Add(StandardG[i].Value*StateInfo.UpperLimit13{,StandardG[i].ExtensionID,clGreen});
Series5.Add(StandardG[i].Value{,StandardG[i].ExtensionID,clGreen});
Series7.Add(StandardG[i].Value*StateInfo.LowLimit07{,StandardG[i].ExtensionID,clYellow});
Series6.Add(StandardG[i].Value*StateInfo.LowLimit04{,StandardG[i].ExtensionID,clRed});
end;
end;
end
else if RadioGroupChart.ItemIndex=1 then
begin
for i:=0 to MaxExtensionCount-1 do
begin
if AllExtension[i].ExtensionID<>'' then
begin
Add(Int(AllExtension[i].Height), AllExtension[i].ExtensionID ,clBlue);
end;
end;
end
else
begin
for i:=0 to MaxExtensionCount-1 do
begin
if AllExtension[i].ExtensionID<>'' then
begin
Add(Int(AllExtension[i].HorizonDiff), AllExtension[i].ExtensionID ,clTeal);
end;
end;
end
end;
end;
procedure TfrmRealChart.RadioGroupChartClick(Sender: TObject);
var
i:Integer;
begin
Chart1.Title.Text.Clear;
if RadioGroupChart.ItemIndex=0 then
begin
SpeedButton1.Visible:=False;
CheckBox1.Visible:=True;
Chart1.Legend.Visible:=CheckBox1.Checked;
Chart1.Title.Text.Add('实时重力柱状图');
Chart1.LeftAxis.Maximum:=10;
Chart1.LeftAxis.Minimum:=0;
end
else if RadioGroupChart.ItemIndex=1 then
begin
SpeedButton1.Visible:=True;
CheckBox1.Visible:=False;
Chart1.Legend.Visible:=False;
Chart1.Title.Text.Add('实时高度柱状图');
Chart1.LeftAxis.Maximum:=1000;
Chart1.LeftAxis.Minimum:=0;
end
else
begin
SpeedButton1.Visible:=True;
CheckBox1.Visible:=False;
Chart1.Legend.Visible:=False;
Chart1.Title.Text.Add('实时水平差柱状图');
Chart1.LeftAxis.Maximum:=20;
Chart1.LeftAxis.Minimum:=-20;
end;
With Series1 do
begin
Clear;
Series2.Clear;
Series3.Clear;
Series4.Clear;
Series6.Clear;
Series7.Clear;
Series5.Clear;
if RadioGroupChart.ItemIndex=0 then
begin
for i:=0 to MaxExtensionCount-1 do
begin
if AllExtension[i].ExtensionID<>'' then
begin
Add(AllExtension[i].Gravity{,AllExtension[i].ExtensionID,clWhite});
Series3.Add(StandardG[i].Value*2{,StandardG[i].ExtensionID,clRed});
Series4.Add(StandardG[i].Value*StateInfo.UpperLimit16{,StandardG[i].ExtensionID,clYellow});
Series2.Add(StandardG[i].Value*StateInfo.UpperLimit13{,StandardG[i].ExtensionID,clGreen});
Series5.Add(StandardG[i].Value{,StandardG[i].ExtensionID,clGreen});
Series7.Add(StandardG[i].Value*StateInfo.LowLimit07{,StandardG[i].ExtensionID,clYellow});
Series6.Add(StandardG[i].Value*StateInfo.LowLimit04{,StandardG[i].ExtensionID,clRed});
end;
end;
end
else if RadioGroupChart.ItemIndex=1 then
begin
for i:=0 to MaxExtensionCount-1 do
begin
if AllExtension[i].ExtensionID<>'' then
begin
Add(Int(AllExtension[i].Height), AllExtension[i].ExtensionID,clBlue);
end;
end;
end
else
begin
for i:=0 to MaxExtensionCount-1 do
begin
if AllExtension[i].ExtensionID<>'' then
begin
Add(Int(AllExtension[i].HorizonDiff), AllExtension[i].ExtensionID ,clTeal);
end;
end;
end
end;
end;
procedure TfrmRealChart.CheckBox1Click(Sender: TObject);
begin
Chart1.Legend.Visible:=CheckBox1.Checked;
end;
procedure TfrmRealChart.SpeedButton1Click(Sender: TObject);
var i:integer;
begin
if StateInfo.SystemState<>ssNormal then
begin
ShowMessage('正在升降,无法清除高度,请升降完成再试!')
end
else
begin
for i:=0 to StateInfo.MaxExtensionCount-1 do
begin
AllExtension[i].Height:=0;
AllExtension[i].HorizonDiff:=0;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -