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

📄 u_year.pas

📁 此系统完成了单向复费率电能表的抄表以及编程
💻 PAS
字号:
unit U_year;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, RzGrids, ExtCtrls, RzPanel, StdCtrls, Mask, RzEdit,
  RzLabel, RzBckgnd, RzBmpBtn, RzCmboBx,IniFiles;

type
  TF_year = class(TForm)
    RzGroupBox1: TRzGroupBox;
    RzMaskEdit1: TRzMaskEdit;
    RzPanel1: TRzPanel;
    RzStringGrid1: TRzStringGrid;
    RzLabel1: TRzLabel;
    RzMaskEdit2: TRzMaskEdit;
    RzLabel2: TRzLabel;
    RzLabel3: TRzLabel;
    RzLabel4: TRzLabel;
    RzBmpButton1: TRzBmpButton;
    RzSeparator1: TRzSeparator;
    RzBmpButton2: TRzBmpButton;
    RzBmpButton3: TRzBmpButton;
    RzComboBox1: TRzComboBox;
    RzLabel5: TRzLabel;
    RzComboBox2: TRzComboBox;
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
    procedure RzMaskEdit1KeyPress(Sender: TObject; var Key: Char);
    procedure RzBmpButton1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure RzBmpButton2Click(Sender: TObject);
    procedure RzBmpButton3Click(Sender: TObject);
    procedure RzMaskEdit1Exit(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
    procedure disstrgrid(str:string;strgrid:TRzStringGrid);
  end;

var
  F_year: TF_year;

implementation

uses U_645_Command, U_function;

{$R *.dfm}
procedure TF_year.disstrgrid(str:string;strgrid:TRzStringGrid);
var
   filename :string;
   i,m:integer;
begin
   //读取ini文件数据
  filename:=extractfilepath(paramstr(0))+F_645.EDIT1.TEXT+'_programme.ini';   //////得到完整的INI文件路径名///
  if fileexists(Filename) then
  begin
    f_645.f_ini.readsection(str,listbox1.Items);
    m := listbox1.Items.Count;
    IF  m <> 0 then
    begin
      strgrid.RowCount := 0;
      for i := 1 to m do
      begin
         strgrid.RowCount := strgrid.RowCount +1;
         strgrid.Cells[0,i] :=inttostr(i);
         strgrid.Cells[1,i] :=listbox1.Items.Strings[i-1];
         strgrid.Cells[2,i] :=trim(f_645.f_ini.ReadString(str,listbox1.Items.Strings[i-1], 'ERROR'));
         strgrid.Update;
      end;
    end
    else
    begin
       strgrid.RowCount := 1;
       strgrid.Update;
    end;
  end;
end;

procedure TF_year.FormCreate(Sender: TObject);
begin
  Rzstringgrid1.Cells[0,0] :='序号';
  Rzstringgrid1.Cells[1,0] :='命令';
  Rzstringgrid1.Cells[2,0] :='设置参数';
  Rzstringgrid1.RowCount := 1;

end;

procedure TF_year.RzMaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  case key of
    '0'..'9':;
    chr(8):;
  else
    key:=chr(0);
  end;
end;

procedure TF_year.RzBmpButton1Click(Sender: TObject);
var
   filename, str1,str2,str3,str4,str,com_str:string;
   sf:integer;
begin
  if (trim(Rzcombobox1.Text)='') or (trim(Rzmaskedit1.Text)='') or
     (trim(Rzmaskedit2.Text)='') or (trim(Rzcombobox2.Text)='') then
  begin
    MyMsgBox(' 请完整添加"参数项"信息!','系  统  错  误', 0);
    exit;
  end;

  str1 :=  PadLStr(trim(Rzcombobox1.Text),2,'0');
  str2 :=  PadLStr(trim(Rzmaskedit1.Text),2,'0');
  str3 :=  PadLStr(trim(Rzmaskedit2.Text),2,'0');
  str4 :=  PadLStr(trim(Rzcombobox2.Text),2,'0');

  if trim(f_year.Caption) ='年时区' then
  BEGIN
     com_str :='C32';
     datetime(strtoint(trim(RzMaskEdit1.Text)),1,sf);
     if sf < 0 then
       exit;
     datetime(strtoint(trim(RzMaskEdit2.Text)),2,sf);
     if sf < 0 then
       exit;
     str :='【第 '+trim(Rzcombobox1.Text)+' 时区起始日期及时段表(套)号)】';
  END
  ELSE if trim(f_year.Caption) ='日时段' then
  begin
     com_str :='C33';
     datetime(strtoint(trim(RzMaskEdit1.Text)),3,sf);
     if sf < 0 then
       exit;
     datetime(strtoint(trim(RzMaskEdit2.Text)),4,sf);
     if sf < 0 then
       exit;
     str :='【第 '+trim(Rzcombobox1.Text)+' 日时段表(套)第 '+trim(Rzcombobox2.Text)+' 时段起始时间及费率号)】';
  end
  ELSE if trim(f_year.Caption) ='公共假日时段' then
  begin
     com_str :='C41';
     datetime(strtoint(trim(RzMaskEdit1.Text)),1,sf);
     if sf < 0 then
       exit;
     datetime(strtoint(trim(RzMaskEdit2.Text)),2,sf);
     if sf < 0 then
       exit;
     str :='【第 '+trim(Rzcombobox1.Text)+' 公休假日日期及时段表(套)号)】';
  end
  else
  begin
    MyMsgBox(' 窗体参数信息错误,请关闭本窗体,重新进入!','系  统  错  误', 0);
    exit;
  end;

  //写INI文件
  filename:=extractfilepath(paramstr(0))+F_645.EDIT1.TEXT+'_programme.ini';   //////得到完整的INI文件路径名///
  f_645.f_ini:=tinifile.Create(filename);
  f_645.f_ini.WriteString(trim(f_year.Caption), com_str+inttohex(strtoint(trim(Rzcombobox1.text)),1), str2+str3+str4+str );

  disstrgrid(trim(f_year.Caption),Rzstringgrid1);
end;





procedure TF_year.FormShow(Sender: TObject);
var
   filename,str,com_str,cs_str :string;
   i:integer;
begin
   //读取ini文件数据
  filename:=extractfilepath(paramstr(0))+F_645.EDIT1.TEXT+'_programme.ini';   //////得到完整的INI文件路径名///
  if fileexists(Filename) then
  begin
    f_645.f_ini:=tinifile.Create(filename);
    disstrgrid(trim(f_year.Caption),Rzstringgrid1);
    exit;
  end;
end;

procedure TF_year.RzBmpButton2Click(Sender: TObject);
var
   filename :string;
begin
  //写INI文件
  filename:=extractfilepath(paramstr(0))+F_645.EDIT1.TEXT+'_programme.ini';   //////得到完整的INI文件路径名///
  f_645.f_ini:=tinifile.Create(filename);
  //删除关键字
  f_645.f_ini.DeleteKey(trim(f_year.Caption),Rzstringgrid1.Cells[1,Rzstringgrid1.row]);
  disstrgrid(trim(f_year.Caption),Rzstringgrid1);


end;

procedure TF_year.RzBmpButton3Click(Sender: TObject);
var
   filename :string;
begin
  //写INI文件
  filename:=extractfilepath(paramstr(0))+F_645.EDIT1.TEXT+'_programme.ini';   //////得到完整的INI文件路径名///
  f_645.f_ini:=tinifile.Create(filename);
  //删除小节
  f_645.f_ini.EraseSection(trim(f_year.Caption));
  disstrgrid(trim(f_year.Caption),Rzstringgrid1);

end;

procedure TF_year.RzMaskEdit1Exit(Sender: TObject);
begin
//
end;

end.

⌨️ 快捷键说明

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