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

📄 realchart.pas

📁 这是一个正式的项目工程
💻 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 + -