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

📄 qzhjunit1.pas

📁 小区抄表系统
💻 PAS
字号:
unit qzhjUnit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, OleCtrls, MSCommLib_TLB, ImgList;

type
  Tqianzhiji = class(TForm)
    Button1: TButton;
    MSComm1: TMSComm;
    Timer1: TTimer;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label4: TLabel;
    Label1: TLabel;
    Label5: TLabel;
    Timer2: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure MSComm1Comm(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  isend : boolean;
  str : string;
  qianzhiji: Tqianzhiji;
  Tdushu:array[1..3,1..5,1..3] of Integer;
implementation

{$R *.dfm}
Procedure TimeDelay(DT:DWORD);
var
  TT:DWORD;
begin
  TT:=GetTickCount();
  while GetTickCount()-TT<DT do
    Application.ProcessMessages;
end;

procedure Tqianzhiji.Button1Click(Sender: TObject);
begin
   MSComm1.PortOpen:=False;
   timer1.Enabled := False;
   close;
end;

procedure Tqianzhiji.FormCreate(Sender: TObject);
var
   I:Integer;
   J:Integer;
   k:Integer;
begin
  edit6.Text:='等待中...';
  label5.Caption := Datetostr (Date ());
  if Not MSComm1.PortOpen then
  begin
     MSComm1.PortOpen:=True;
     MSComm1.DTREnable:=True;
     MSComm1.RTSEnable:=True;
  end;
  MSComm1.RThreshold := 1;
  for I:=1 to 3 do
  begin
     for J:=1 to 5 do
     begin
     for K:=1 to 3 do
     begin
     Tdushu[I][J][K]:=0;
     end;
     end;
   end;


end;



procedure Tqianzhiji.Timer1Timer(Sender: TObject);
var
   I:Integer;
   J:Integer;
begin
    label5.Caption := Datetostr (Date ());
    for I:=1 to 3 do
  begin
     for J:=1 to 5 do
     begin

     Tdushu[I][J][1]:=Tdushu[I][J][1]+I+(2*J)+1;
     Tdushu[I][J][2]:=Tdushu[I][J][2]+I+(3*J)+3;
     Tdushu[I][J][3]:=Tdushu[I][J][3]+I+(5*J)-2;

     end;
   end;


end;



procedure Tqianzhiji.MSComm1Comm(Sender: TObject);
var
  ReceBuf:string;
  str1:string;
   I:Integer;
begin
  ReceBuf := Trim(MSComm1.Input);

  if ReceBuf='读A栋' then begin
        edit6.Text:='发送中...';
        str1:='A栋:';
        MSComm1.Output := str1;
        TimeDelay(500);
        for I:=1 to 3 do
        begin
        Tdushu[1][I][1]:=Tdushu[1][I][1]+I+(5*I)+1;
        Tdushu[1][I][2]:=Tdushu[1][I][2]+I+(3*I)+3;
        Tdushu[1][I][3]:=Tdushu[1][I][3]+I+(2*I)+1;
        edit1.Text:='A';
        edit2.Text := inttostr (I);
        edit3.Text:=inttostr(Tdushu[1][I][1]);
        str1:=edit3.Text;           //水表
        MSComm1.Output := str1;
        TimeDelay(500);
        edit4.Text:=inttostr(Tdushu[1][I][2]);
        str1:=edit4.Text;           //电表
        MSComm1.Output := str1;
        TimeDelay(500);
        edit5.Text:=inttostr(Tdushu[1][I][3]);
        str1:=edit5.Text;           //煤气表
        MSComm1.Output := str1;
        TimeDelay(500);


     end;
         str1 := 'A!';
        MSComm1.Output := str1;
        TimeDelay(500);

     exit;
  end;
   if ReceBuf='读B栋' then begin
        edit6.Text:='发送中...';
        str1:='B栋:';
        MSComm1.Output := str1;
        TimeDelay(500);
        for I:=1 to 3 do
        begin
        Tdushu[1][I][1]:=Tdushu[1][I][1]+I+(4*I)+2;
        Tdushu[1][I][2]:=Tdushu[1][I][2]+I+(3*I)+2;
        Tdushu[1][I][3]:=Tdushu[1][I][3]+I+(2*I);
        edit1.Text:='B';
        edit2.Text :=inttostr(I);
        edit3.Text:=inttostr(Tdushu[1][I][1]);
        str1:=edit3.Text;           //水表
        MSComm1.Output := str1;
        TimeDelay(500);
        edit4.Text:=inttostr(Tdushu[1][I][2]);
        str1:=edit4.Text;           //电表
        MSComm1.Output := str1;
        TimeDelay(500);
        edit5.Text:=inttostr(Tdushu[1][I][3]);
        str1:=edit5.Text;           //煤气表
        MSComm1.Output := str1;
        TimeDelay(500);


     end;
        str1 := 'B!';
        MSComm1.Output := str1;
        TimeDelay(500);
     exit;
     end;
    if ReceBuf='读C栋' then begin
        edit6.Text:='发送中...';
        str1:='C栋:';
        MSComm1.Output := str1;
        TimeDelay(1000);
        for I:=1 to 3 do
        begin
        Tdushu[1][I][1]:=Tdushu[1][I][1]+I+(3*I);
        Tdushu[1][I][2]:=Tdushu[1][I][2]+I+(5*I)+2;
        Tdushu[1][I][3]:=Tdushu[1][I][3]+I+(2*I)+1;
        edit1.Text:='C';
        edit2.Text :=inttostr(I);
        edit3.Text:=inttostr(Tdushu[1][I][1]);
        str1:=edit3.Text;           //水表
        MSComm1.Output := str1;
        TimeDelay(500);
        edit4.Text:=inttostr(Tdushu[1][I][2]);
        str1:=edit4.Text;           //电表
        MSComm1.Output := str1;
        TimeDelay(500);
        edit5.Text:=inttostr(Tdushu[1][I][3]);
        str1:=edit5.Text;            //煤气表
        MSComm1.Output := str1;
        TimeDelay(500);
     end;
  edit1.Text := '0';
  edit2.Text := '0';
  edit3.Text := '0';
  edit4.Text := '0';
  edit5.Text := '0';
  edit6.Text:='等待中...';
     exit;
  end;
end;

procedure Tqianzhiji.Timer2Timer(Sender: TObject);
begin
  if edit6.Text = '' then
  edit6.Text := str
  else
  begin
    str := edit6.Text;
    edit6.Text := '';
  end
end;

end.

⌨️ 快捷键说明

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