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

📄 u_bcset.pas

📁 此系统完成了单向复费率电能表的抄表以及编程
💻 PAS
📖 第 1 页 / 共 2 页
字号:

procedure TF_bcset.RzMaskEdit14Exit(Sender: TObject);
var
  sf:integer;
begin
   IF trim(RzMaskEdit14.Text) <> '' then
      datetime(strtoint(trim(RzMaskEdit14.Text)),4,sf);
end;

procedure TF_bcset.RzMaskEdit19Exit(Sender: TObject);
var
  sf:integer;
begin
   IF trim(RzMaskEdit19.Text) <> '' then
      datetime(strtoint(trim(RzMaskEdit19.Text)),2,sf);
end;

procedure TF_bcset.RzMaskEdit30Exit(Sender: TObject);
var
  sf:integer;
begin
   IF trim(RzMaskEdit30.Text) <> '' then
      datetime(strtoint(trim(RzMaskEdit30.Text)),3,sf);
end;

procedure TF_bcset.RzMaskEdit25Exit(Sender: TObject);
var
  sf:integer;
begin
   IF trim(RzMaskEdit25.Text) <> '' then
      datetime(strtoint(trim(RzMaskEdit25.Text)),1,sf);
end;

procedure TF_bcset.RzMaskEdit27Exit(Sender: TObject);
var
  sf:integer;
begin
   IF trim(RzMaskEdit27.Text) <> '' then
      datetime(strtoint(trim(RzMaskEdit27.Text)),2,sf);
end;

procedure TF_bcset.RzMaskEdit28Exit(Sender: TObject);
var
  sf:integer;
begin
   IF trim(RzMaskEdit28.Text) <> '' then
      datetime(strtoint(trim(RzMaskEdit28.Text)),3,sf);
end;

procedure TF_bcset.RzMaskEdit29Exit(Sender: TObject);
var
  sf:integer;
begin
   IF trim(RzMaskEdit29.Text) <> '' then
      datetime(strtoint(trim(RzMaskEdit29.Text)),4,sf);
end;

//保存参数设置
procedure TF_bcset.RzBmpButton6Click(Sender: TObject);
var
  filename,ztz,str,zsw,xsw,zswb :string;
  i,j:integer;
begin
      {if (pos('.',rzmaskedit21.Text)=0)  then
            rzmaskedit21.Text:= copy('000000',1,6-length(rzmaskedit21.Text))+rzmaskedit21.Text+'00';
      if  (pos('.',rzmaskedit21.Text)<>1)  then
          zsw:=copy(rzmaskedit21.Text,1,pos('.',rzmaskedit21.Text)-1);
          xsw:=copy(rzmaskedit21.Text,pos('.',rzmaskedit21.Text)+1,length(rzmaskedit21.Text)-pos('.',rzmaskedit21.Text));}
  zsw:=inttostr(trunc(strtofloat(rzmaskedit21.Text)));
  if length(zsw)>6 then
       begin
         showmessage('有功电能起始读数的整数位不能多于六位,请重新输入');
         rzmaskedit21.SetFocus;
         exit;
       end;
  zswb:=copy('000000',1,6-length(inttostr(trunc(strtofloat(rzmaskedit21.Text)))))+inttostr(trunc(strtofloat(rzmaskedit21.Text)));
  xsw:=copy(rzmaskedit21.Text,length(zsw)+2,length(rzmaskedit21.Text)-length(zsw)-1);
    if  length(xsw)=0 then   //本身就是整数
        rzmaskedit21.Text:= copy('000000',1,6-length(rzmaskedit21.Text))+rzmaskedit21.Text+'00';
    if  length(xsw)=1 then   //带一位小数的实数
        rzmaskedit21.Text:=zswb+xsw+'0';
    if  length(xsw)=2  then
        rzmaskedit21.Text:=zswb+xsw;

  for i:=1 to 35 do
    TRzmaskedit(FindComponent('Rzmaskedit'+inttostr(i))).Text := PadLStr(TRzmaskedit(FindComponent('Rzmaskedit'+inttostr(i))).Text,TRzmaskedit(FindComponent('Rzmaskedit'+inttostr(i))).MaxLength,'0');

  filename:=extractfilepath(paramstr(0))+F_645.EDIT1.TEXT+'_programme.ini';   //////得到完整的INI文件路径名///
  f_645.f_ini:=tinifile.Create(filename);
  //时钟
  f_645.f_ini.WriteString('设置参数', 'C010', Rzmaskedit1.Text + Rzmaskedit2.Text +Rzmaskedit3.Text +Rzmaskedit4.Text  );
  f_645.f_ini.WriteString('设置参数', 'C011', Rzmaskedit5.Text + Rzmaskedit6.Text +Rzmaskedit7.Text );
  //状态字
  for i :=1  to 3 do
  begin
    ztz :='';
    for j := 0 to 7 do
    begin
       if TRzcheckgroup(FindComponent('Rzcheckgroup'+inttostr(i))).ItemChecked[j] then
          ztz := ztz+'1'
       else
          ztz := ztz+'0' ;
    end;
    //str:=hextochar(copy(ReverseString(trim(ztz)),1,4))+hextochar(copy(ReverseString(trim(ztz)),5,8));
    f_645.f_ini.WriteString('设置参数', 'C02'+inttostr(i-1), ReverseString(trim(ztz)));
  end;
  //常量参数
  f_645.f_ini.WriteString('设置参数', 'C030', Rzmaskedit8.Text );
  f_645.f_ini.WriteString('设置参数', 'C031', Rzmaskedit9.Text );
  f_645.f_ini.WriteString('设置参数', 'C032', Rzmaskedit10.Text );
  f_645.f_ini.WriteString('设置参数', 'C033', Rzmaskedit11.Text );
  f_645.f_ini.WriteString('设置参数', 'C034', Rzmaskedit12.Text );
  //变量参数
  f_645.f_ini.WriteString('设置参数', 'C111', Rzmaskedit13.Text );
  f_645.f_ini.WriteString('设置参数', 'C112', Rzmaskedit14.Text );
  f_645.f_ini.WriteString('设置参数', 'C113', Rzmaskedit15.Text );
  f_645.f_ini.WriteString('设置参数', 'C114', Rzmaskedit16.Text );
  f_645.f_ini.WriteString('设置参数', 'C115', Rzmaskedit17.Text );
  f_645.f_ini.WriteString('设置参数', 'C116', Rzmaskedit18.Text );
  f_645.f_ini.WriteString('设置参数', 'C117', Rzmaskedit19.Text + Rzmaskedit30.Text);
  f_645.f_ini.WriteString('设置参数', 'C118', Rzmaskedit20.Text );
  f_645.f_ini.WriteString('设置参数', 'C119', Rzmaskedit21.Text );
  f_645.f_ini.WriteString('设置参数', 'C12A', Rzmaskedit22.Text );
  f_645.f_ini.WriteString('设置参数', 'C211', Rzmaskedit23.Text );
  f_645.f_ini.WriteString('设置参数', 'C212', Rzmaskedit24.Text );
  f_645.f_ini.WriteString('设置参数', 'C510', Rzmaskedit25.Text + Rzmaskedit27.Text+ Rzmaskedit28.Text+ Rzmaskedit29.Text);
  f_645.f_ini.WriteString('设置参数', 'C511', Rzmaskedit26.Text );
  //时段。时区参数
  f_645.f_ini.WriteString('设置参数', 'C310', Rzmaskedit31.Text );
  f_645.f_ini.WriteString('设置参数', 'C311', Rzmaskedit32.Text );
  f_645.f_ini.WriteString('设置参数', 'C312', Rzmaskedit33.Text );
  f_645.f_ini.WriteString('设置参数', 'C313', Rzmaskedit34.Text );
  f_645.f_ini.WriteString('设置参数', 'C314', Rzmaskedit35.Text );


  Rzbmpbutton1.Enabled := true;
  Rzbmpbutton2.Enabled := true;
  Rzbmpbutton3.Enabled := true;

end;

procedure TF_bcset.RzBmpButton1Click(Sender: TObject);
var
   i:integer;
begin
  if (trim(Rzmaskedit31.Text) = '0') or (trim(Rzmaskedit31.Text) = '00') or  (trim(Rzmaskedit31.Text) = '')   then
  begin
    MyMsgBox(' 请先填写【年时区数】!','系  统  错  误', 0);
    Rzmaskedit31.SetFocus;
    exit;
  end;
  if (trim(Rzmaskedit32.Text) = '0') or (trim(Rzmaskedit32.Text) = '00') or  (trim(Rzmaskedit32.Text) = '')   then
  begin
    MyMsgBox(' 请先填写【日时段表数】!','系  统  错  误', 0);
    Rzmaskedit32.SetFocus;
    exit;
  end;
  //设置年时区
  if (strtoint(trim(Rzmaskedit31.Text)) = 1) or  (strtoint(trim(Rzmaskedit32.Text)) = 1)  then
  begin
    MyMsgBox(' 【年时区数】与【日时段表数】为 1 时,无需进行该参数设置!','系  统  错  误', 0);
    exit;
  end;
  f_year.Caption :='年时区';
  f_year.RzLabel5.Caption :='年时区序号';
  f_year.RzLabel2.Caption :='月';
  f_year.RzLabel3.Caption :='日';
  f_year.RzLabel4.Caption :='时段表(套)号';
  for i := 1 to strtoint(trim(Rzmaskedit31.Text)) do
     f_year.RzComboBox1.Items.Add(PadLStr(inttostr(i),2,'0'));
  for i := 1 to strtoint(trim(Rzmaskedit32.Text)) do
     f_year.RzComboBox2.Items.Add(PadLStr(inttostr(i),2,'0'));
  f_year.ShowModal;


end;

procedure TF_bcset.RzBmpButton2Click(Sender: TObject);
var
  i:integer;
begin
  if (trim(Rzmaskedit32.Text) = '0') or (trim(Rzmaskedit32.Text) = '00') or  (trim(Rzmaskedit32.Text) = '')   then
  begin
    MyMsgBox(' 请先填写【日时段表数】!','系  统  错  误', 0);
    Rzmaskedit32.SetFocus;
    exit;
  end;
  if (trim(Rzmaskedit33.Text) = '0') or (trim(Rzmaskedit33.Text) = '00') or  (trim(Rzmaskedit33.Text) = '')   then
  begin
    MyMsgBox(' 请先填写【日时段(每日切换数)】!','系  统  错  误', 0);
    Rzmaskedit33.SetFocus;
    exit;
  end;
  if (trim(Rzmaskedit34.Text) = '0') or (trim(Rzmaskedit34.Text) = '00') or  (trim(Rzmaskedit34.Text) = '')   then
  begin
    MyMsgBox(' 请先填写【费率数】!','系  统  错  误', 0);
    Rzmaskedit34.SetFocus;
    exit;
  end;
  //设置年时区
  f_year.Caption :='日时段';
  f_year.RzLabel5.Caption :='时段表(套)序号';
  f_year.RzLabel2.Caption :='时';
  f_year.RzLabel3.Caption :='分';
  f_year.RzLabel4.Caption :='费率号';
  for i := 1 to strtoint(trim(Rzmaskedit32.Text)) do
     f_year.RzComboBox1.Items.Add(PadLStr(inttostr(i),2,'0'));
  for i := 1 to strtoint(trim(Rzmaskedit34.Text)) do
     f_year.RzComboBox2.Items.Add(PadLStr(inttostr(i),2,'0'));
  f_year.ShowModal;
end;

procedure TF_bcset.RzBmpButton3Click(Sender: TObject);
var
  i:integer;
begin

  if (trim(Rzmaskedit32.Text) = '0') or (trim(Rzmaskedit32.Text) = '00') or  (trim(Rzmaskedit32.Text) = '')   then
  begin
    MyMsgBox(' 请先填写【日时段表数】!','系  统  错  误', 0);
    Rzmaskedit32.SetFocus;
    exit;
  end;
  if (trim(Rzmaskedit34.Text) = '0') or (trim(Rzmaskedit34.Text) = '00') or  (trim(Rzmaskedit34.Text) = '')   then
  begin
    MyMsgBox(' 请先填写【费率数】!','系  统  错  误', 0);
    Rzmaskedit34.SetFocus;
    exit;
  end;
  if (trim(Rzmaskedit35.Text) = '0') or (trim(Rzmaskedit35.Text) = '00') or  (trim(Rzmaskedit35.Text) = '')   then
  begin
    MyMsgBox(' 请先填写【公休假日数】!','系  统  错  误', 0);
    Rzmaskedit35.SetFocus;
    exit;
  end;
  //设置年时区
  f_year.Caption :='公共假日时段';
  f_year.RzLabel5.Caption :='公共假日序号';
  f_year.RzLabel2.Caption :='月';
  f_year.RzLabel3.Caption :='日';
  f_year.RzLabel4.Caption :='时段表(套)号';
  for i := 1 to strtoint(trim(Rzmaskedit35.Text)) do
     f_year.RzComboBox1.Items.Add(PadLStr(inttostr(i),2,'0'));
  for i := 1 to strtoint(trim(Rzmaskedit34.Text)) do
     f_year.RzComboBox2.Items.Add(PadLStr(inttostr(i),2,'0'));
  f_year.ShowModal;
end;

procedure TF_bcset.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   f_645.checklist2RF;    //编程
end;

procedure TF_bcset.RzMaskEdit21KeyPress(Sender: TObject; var Key: Char);

var
      PointPos,StrLen:Integer;
  begin

      case   key   of
          '0'..'9':
                 if   (pos('.',RzMaskEdit21.Text)<>0   )   then
                      begin
          PointPos   :=   Pos('.',RzMaskEdit21.Text);
          StrLen   :=   Length(RzMaskEdit21.Text);
          if   StrLen-PointPos=2   then
             begin
                   Key:=#0;
             end;
          
      end;
          '.':
                  if   (pos('.',RzMaskEdit21.Text)<>0   )   then
                          Key:=#0;
          #8:;
      end;
  end;

procedure TF_bcset.RzMaskEdit22KeyPress(Sender: TObject; var Key: Char);
var
      PointPos,StrLen:Integer;

  begin

      case   key   of
          '0'..'9':
                 if   (pos('.',RzMaskEdit22.Text)<>0   )   then
                      begin
          PointPos   :=   Pos('.',RzMaskEdit22.Text);
          StrLen   :=   Length(RzMaskEdit22.Text);
          if   StrLen-PointPos=2   then
             begin
                   Key:=#0;
             end;
      end;
          '.':
                  if   (pos('.',RzMaskEdit22.Text)<>0   )   then
                          Key:=#0;
          #8:;
      end;
     
  end;

end.

⌨️ 快捷键说明

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