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

📄 untmain.~pas

📁 显示当前采集的10个测量点的路温湿度值: 温度单位是℃
💻 ~PAS
字号:
unit untMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ImgList, ComCtrls, ToolWin, Menus, ExtCtrls, TeeProcs,
  TeEngine, Chart, Series,Math, Buttons,DB,ADODB;

type
  TFrmMAIN = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    displayForm1: TMenuItem;
    N6: TMenuItem;
    alarmSet: TMenuItem;
    saveSpaceSet: TMenuItem;
    baudSet: TMenuItem;
    mmiHelp: TMenuItem;
    ToolBar1: TToolBar;
    ImageList1: TImageList;
    N2: TMenuItem;
    btnTemSearch: TMenuItem;
    passwordSet: TMenuItem;
    versionMes: TMenuItem;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    lblDate: TLabel;
    lblTime: TLabel;
    Bevel1: TBevel;
    Bevel2: TBevel;
    StaticText4: TStaticText;
    StaticText5: TStaticText;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    StaticText1: TStaticText;
    StaticText2: TStaticText;
    StaticText3: TStaticText;
    edt1: TEdit;
    edt2: TEdit;
    edt3: TEdit;
    edt4: TEdit;
    edt5: TEdit;
    edt6: TEdit;
    edt7: TEdit;
    edt8: TEdit;
    edt9: TEdit;
    edt10: TEdit;
    Chart1: TChart;
    Chart2: TChart;
    edt11: TEdit;
    edt12: TEdit;
    edt13: TEdit;
    edt14: TEdit;
    edt15: TEdit;
    edt16: TEdit;
    edt17: TEdit;
    edt18: TEdit;
    edt19: TEdit;
    edt20: TEdit;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    TmrMain: TTimer;
    Series1: TFastLineSeries;
    Series2: TFastLineSeries;
    Label14: TLabel;
    ComboBox1: TComboBox;
    Label15: TLabel;
    ComboBox2: TComboBox;
    btnHumSearch: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure TmrMainTimer(Sender: TObject);
    procedure ComboBox1CloseUp(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure btnTemSearchClick(Sender: TObject);
    procedure btnHumSearchClick(Sender: TObject);
    procedure alarmSetClick(Sender: TObject);
    procedure saveSpaceSetClick(Sender: TObject);
    procedure baudSetClick(Sender: TObject);
    procedure versionMesClick(Sender: TObject);
    procedure displayForm1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
Const
    SAVETIMECNT : Integer = 4; // 动态显示时间
var
  FrmMAIN: TFrmMAIN;
  edtTempArr:array[1..10] of Tedit;  // 温度 text edit
  edtHumArr:array[1..10] of Tedit;  // 湿度 text edit
  refreshTimeSpace : Integer = 0; // refresh time space
  saveTimeSpace : Integer =0; // sava time space
  tempTimeData: array[1..10] of Integer ;// 温度数据
  humTimeData: array[1..10] of Integer ;// 湿度数据
  tempPointCount : Integer = 0;   // 温度显示点数
  humPointCount : Integer = 0;   // 湿度显示点数
  selectedTempPos : Integer = 1; //  要显示的温度点
  selectedHumPos : Integer = 1; // 要显示的湿度点
implementation
uses
   LoginForm,untDMmain,untTemSearch, untHumSearch, untSysAlarmSet,
  untSaveTimeSet, untBaudSet, untAbout;
{$R *.dfm}

procedure TFrmMAIN.FormCreate(Sender: TObject);
begin
  Tmrmain.Enabled := true; // open timer
  lblTime.Caption := TimeToStr(Time); // display time
  lblDate.caption := DateToStr(Date); // display date
  // 温度初始化
  edtTempArr[1]:=edt1;
  edtTempArr[2]:=edt3;
  edtTempArr[3]:=edt5;
  edtTempArr[4]:=edt7;
  edtTempArr[5]:=edt9;
  edtTempArr[6]:=edt11;
  edtTempArr[7]:=edt13;
  edtTempArr[8]:=edt15;
  edtTempArr[9]:=edt17;
  edtTempArr[10]:=edt19;
  // 温度初始化
  edtHumArr[1]:=edt2;
  edtHumArr[2]:=edt4;
  edtHumArr[3]:=edt6;
  edtHumArr[4]:=edt8;
  edtHumArr[5]:=edt10;
  edtHumArr[6]:=edt12;
  edtHumArr[7]:=edt14;
  edtHumArr[8]:=edt16;
  edtHumArr[9]:=edt18;
  edtHumArr[10]:=edt20;
  // 温度曲线设置
  With Chart1 do
    AnimatedZoom:=True;
  begin
    With Series1 do
    begin
    // set series1
      Xvalues.DateTime := true;
    end;
  end;
  // 湿度曲线设置
  With Chart2 do
  begin
    AnimatedZoom:=True;
    With Series2 do
       // set series1
      Xvalues.DateTime := true;
   end;
end;

procedure TFrmMAIN.TmrMainTimer(Sender: TObject);
var 
  i : Integer;
begin
  lblTime.Caption := TimeToStr(Time); // display time
  lblDate.caption := DateToStr(Date); // display date
  // 以下页面刷新操作
  if refreshTimeSpace =  SAVETIMECNT then
  begin
    refreshTimeSpace := 0; // reset data
    INC(saveTimeSpace); // save time add
    // TODO  这儿从下位机取得数据
    for i := 1 to 10 do
    begin
      // 温度数据
      tempTimeData[i] := RandomRange(16,22);
      // 判断是否超过报警设置
      if (tempTimeData[i] < lowTemp) or  (tempTimeData[i] > highTemp)  then
         // red color
         edtTempArr[i].Color := clRed
      else
        // white color
         edtTempArr[i].Color := clWindow;
     // 显示
      edtTempArr[i].Text := InttoStr(tempTimeData[i]);
    end;

    for i := 1 to 10 do
    begin
      // 湿度数据
      humTimeData[i] := RandomRange(20,80);
      // 判断是否超过报警设置
      if (humTimeData[i] < lowHum) or  (humTimeData[i] > highHum)  then
         // red color
         edtHumArr[i].Color := clRed
      else
        // white color
         edtHumArr[i].Color := clWindow;
     // 显示
      edtHumArr[i].Text := InttoStr(humTimeData[i]);
   end;

   // 温度图形动态显示
    With Chart1 do
       begin
       With Series1 do
          begin
            if tempPointCount> 5 then
              // 5个点已满
              Delete(0)
            else
              inc(tempPointCount);
            AddXY(TIME,tempTimeData[selectedTempPos],'',clGreen);
          end;
          AddSeries(Series1);
       end;
    // 湿度图形动态显示
    With Chart2 do
       begin
       With Series2 do
          begin
            if humPointCount> 5 then
              // 5个点已满
              Delete(0)
            else
              inc(humPointCount);
            AddXY(TIME,humTimeData[selectedHumPos],'',clGreen);
          end;
          AddSeries(Series2);
       end;
    end else
    inc(refreshTimeSpace);
  // 以下存储操作
  if saveTimeSpace =  setSaveTimeSpace * 12 then
  begin
  saveTimeSpace := 0; // reset data
   // 存储测试数据
  try
      DMmain.ADOTblRunData.open;
      DMmain.ADOTblRunData.Refresh;
      DMmain.ADOTblRunData.edit;
      DMmain.ADOTblRunData.append;
      DMmain.ADOTblRunData.Fields[0].value := Date + Time; // 日期+时间
      for i:=1 to 10 do
        begin
        DMmain.ADOTblRunData.Fieldbyname('temp'+inttostr(i)).asfloat := tempTimeData[i];
        DMmain.ADOTblRunData.Fieldbyname('hum'+inttostr(i)).asfloat := humTimeData[i];
        end;
      DMmain.ADOTblRunData.post;
      DMmain.ADOTblRunData.close;
   except
    end;

  {try
    with DMmain.ADOQueryMain do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select * from tblRunData ');
        Open;
        if RecordCount > 1 then Last;  // go last
      end;
      DMmain.ADOQueryMain.Free;
      //DMmain.ADOCnnctMain.BeginTrans; // 开始事务
      DMmain.ADOQueryMain.Insert;
      DMmain.ADOQueryMain.Fields[0].value := Date + Time; // 日期+时间
      for i:=1 to 10 do
        begin
        DMmain.ADOQueryMain.Fieldbyname('temp'+inttostr(i)).asfloat := tempTimeData[i];
        DMmain.ADOQueryMain.Fieldbyname('hum'+inttostr(i)).asfloat := humTimeData[i];
        end;
    // DMmain.ADOCnnctMain.CommitTrans; // 开始事务
  except
   // DMmain.ADOCnnctMain.RollbackTrans; // 回滚事务
  end;  }
  end;
end;

procedure TFrmMAIN.ComboBox1CloseUp(Sender: TObject);
begin
  // 温度显示点选择
  selectedTempPos := ComboBox1.ItemIndex + 1;
end;

procedure TFrmMAIN.ComboBox2Change(Sender: TObject);
begin
  // 湿度显示点选择
  selectedHumPos := ComboBox2.ItemIndex + 1;
end;

procedure TFrmMAIN.btnTemSearchClick(Sender: TObject);
begin
   // 显示温度查询
   frmWdSearch.showModal;
end;

procedure TFrmMAIN.btnHumSearchClick(Sender: TObject);
begin
   // 显示湿度查询
   frmSdSearch.showModal;
end;

procedure TFrmMAIN.alarmSetClick(Sender: TObject);
begin
    // 显示报警设置
   frmAlarmSet.showModal;
end;

procedure TFrmMAIN.saveSpaceSetClick(Sender: TObject);
begin
   // 显示报警设置
   frmSaveTimeSet.showModal;
end;

procedure TFrmMAIN.baudSetClick(Sender: TObject);
begin
   // 显示波特率设置
   frmBaudSet.showModal;
end;

procedure TFrmMAIN.versionMesClick(Sender: TObject);
begin
   // 显示关于信息
  frmAbout.ShowModal;
end;

procedure TFrmMAIN.displayForm1Click(Sender: TObject);
begin
  close;
end;

end.

⌨️ 快捷键说明

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