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

📄 basefrm.~pas

📁 能对电子式电能表通过485接口进行通讯测试的软件
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
    CB_Byte0: TFlatComboBox;
    CB_Byte1: TFlatComboBox;
    CB_Byte2: TFlatComboBox;
    CB_Byte3: TFlatComboBox;
    ChEdit_MeterMode4: TCheckedEdit;
    ChEdit_DSP: TCheckedEdit;
    ChEdit_HRepair: TCheckedEdit;
    ChEdit_NRepair: TCheckedEdit;
    RichEdit: TListBox;
    TV_Event: TTreeView;
    Label63: TLabel;
    Label64: TLabel;
    Label65: TLabel;
    Label66: TLabel;
    Label67: TLabel;
    Label68: TLabel;
    Label69: TLabel;
    Label70: TLabel;
    Label71: TLabel;
    Label72: TLabel;
    Label73: TLabel;
    Label74: TLabel;
    Label75: TLabel;
    Label76: TLabel;
    Label77: TLabel;
    Label78: TLabel;
    Label79: TLabel;
    Label80: TLabel;
    Label82: TLabel;
    FE_HarmOutElect: TFlatEdit;
    FE_BaseOutElect: TFlatEdit;
    procedure FormShow(Sender: TObject);
    procedure PageControlChange(Sender: TObject);
    procedure SB_CloseClick(Sender: TObject);
    procedure RichEditDblClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  protected
    FdataBit : TByteSize;
    FStopBit : TStopBits;
    FParity  : TParity;
    PageIndex :byte;
    ControlIndex :byte;
    CE_Valve : array[1..CountVale] of TCheckedEdit;
    CE_Electry: array[1..CountElect] of TCheckedEdit;
    CE_DelayTime: array[1..CountDelay] of TCheckedEdit;
    CE_VolCurr: array[1..CountVoltCurr] of TCheckedEdit;
    CE_Break: array[1..CountBreak] of TCheckedEdit;

    FE_BreadPos : array[1..CountBreadPos] of TFlatEdit;
    LB_BreadPos : array[1..CountBreadPos] of TLabel;

    CE_EventTime: array[1..CountEvent] of TCheckedEdit;
    FE_Value1: array[1..CountEvent] of TFlatEdit;
    CE_Others: array[1..CountOther] of TCheckedEdit;
    CB_BurthMode2 : array[1..45] of TFlatCheckBox;

    FCB_MeterMode :array[1..4] of TFlatComboBox;
   // FCB_BurthMode :array[1..48] of TFlatComboBox;
    RecieveStr:string;
    PassWord1,PassWord2,PassWord3,Address:string;
    FOrderDelay :integer;
    FWordDelay : integer; 
  public 
    { Public declarations }
  end;
  procedure Delay(MSecs: Longint);
var
  BaseForm: TBaseForm;

  m_iMsgID : Integer;
implementation

{$R *.dfm}
procedure Delay(MSecs: Longint);
var
  FirstTickCount, nowtime: Longint;
begin
  FirstTickCount := GetTickCount;
  repeat
    Application.ProcessMessages; { allowing access to other controls, etc. }
    nowtime := GetTickCount;
  until (nowtime - FirstTickCount >= MSecs) or (nowtime < FirstTickCount);
end;


procedure TBaseForm.FormShow(Sender: TObject);
var
  Reg: TRegistry;
  icom,ibaud,idata,istop,icheck:integer;
  OrderDelay ,WordDelay  :string;
begin
  try
    Reg := TRegistry.Create;;
    Reg.RootKey := HKEY_CURRENT_USER;
    if (Reg.OpenKey('\Software\test485\test485\test',false)) then
    begin
     icom :=Reg.ReadInteger('COMPORT');
     ibaud :=Reg.ReadInteger('BAUD');
     idata :=Reg.ReadInteger('DATA');
     istop :=Reg.ReadInteger('STOP');
     icheck:=Reg.ReadInteger('CHECK');
     Address:=Reg.ReadString('DEVICE');
     PassWord1:=Reg.ReadString('PassWord1');
     PassWord2:=Reg.ReadString('PassWord2');
     PassWord3:=Reg.ReadString('PassWord3');
     OrderDelay :=Reg.ReadString('mlddsj');//('mlys');
     WordDelay :=Reg.ReadString('fszjys');
     Reg.CloseKey;
    end;
  finally
     Reg.Free;
  end;
  if(OrderDelay='') then
    FOrderDelay := 1500
  else
    FOrderDelay := StrToInt(OrderDelay);

  if(WordDelay='') then
    FWordDelay:= 20
  else
    FWordDelay := StrToInt(WordDelay);

  case idata of
   5 : FDataBit := _5;
   6 : FDataBit := _6;
   7 : FDataBit := _7;
  else FDataBit := _8;
  end;

  case icheck of
    1: FParity := None;
    2: FParity := Odd;
    4: FParity := Mark;
    5: FParity := Space;
    else FParity := Even;
  end;

  Comm.StopComm;
  Comm.CommName := 'com'+IntToStr(icom);
  Comm.ByteSize := FDataBit;
  Comm.StopBits := _1;
  Comm.BaudRate := ibaud;
  Comm.Parity := FParity;
 // try
   Comm.StartComm;
 // except
 // end;
  shqDl645.ComAddr :=Address;
  cpGeneralWrite.ComAddr:=Address;
  BurthCurve645.ComAddr:=Address;
  cpEventRecord.ComAddr :=Address;
  cpEventProgram.ComAddr :=Address;

  CE_Valve[1]:=ChEdit_LoseVTop;
  CE_Valve[2]:=ChEdit_OverVTop;
  CE_Valve[3]:=ChEdit_OweVTop;
  CE_Valve[4]:=ChEdit_DXVTop;
  CE_Valve[5]:=ChEdit_NLoseVBut;
  CE_Valve[6]:=ChEdit_DLCTop;
  CE_Valve[7]:=ChEdit_DLCBut;
  CE_Valve[8]:=ChEdit_GDlTop;
  CE_Valve[9]:=ChEdit_BigCTop;
  CE_Valve[10]:=ChEdit_NoVolTop;
  CE_Valve[11]:=ChEdit_Judge;
  CE_Valve[12]:=ChEdit_DemTop;
  CE_Valve[13]:=ChEdit_PowerFacTop;
  CE_Valve[14]:=ChEdit_DemBerrTop;
  CE_Valve[15]:=ChEdit_BerrVTop;
  CE_Valve[16]:=ChEdit_BerrCTop;
  CE_Valve[17]:=ChEdit_DissVTop;
  CE_Valve[18]:=ChEdit_DisCTop;
  CE_Valve[19]:=ChEdit_DisBanVTop;
  CE_Valve[20]:=ChEdit_DisBanCTop;


  CE_Electry[1] := ChEdit_BaseInZ;
  CE_Electry[2] := ChEdit_BaseInA;
  CE_Electry[3] := ChEdit_BaseInB;
  CE_Electry[4] := ChEdit_BaseInC;
  CE_Electry[5] := ChEdit_HarmInZ;
  CE_Electry[6] := ChEdit_HarmInA;
  CE_Electry[7] := ChEdit_HarmInB;
  CE_Electry[8] := ChEdit_HarmInC;
  CE_Electry[9] := ChEdit_HarmPZ;
  CE_Electry[10] := ChEdit_HarmPA;
  CE_Electry[11] := ChEdit_HarmPB;
  CE_Electry[12] := ChEdit_HarmPC;
  CE_Electry[13] := ChEdit_CoppZ;
  CE_Electry[14] := ChEdit_CoppA;
  CE_Electry[15] := ChEdit_CoppB;
  CE_Electry[16] := ChEdit_CoppC;
  CE_Electry[17] := ChEdit_IronZ;
  CE_Electry[18] := ChEdit_IronA;
  CE_Electry[19] := ChEdit_IronB;
  CE_Electry[20] := ChEdit_IronC;
  CE_Electry[21] := ChEdit_LoseZ;
  CE_Electry[22] := ChEdit_LoseA;
  CE_Electry[23] := ChEdit_LoseB;
  CE_Electry[24] := ChEdit_LoseC;
  CE_Electry[25] := ChEdit_HarmOutZ;
  CE_Electry[26] := ChEdit_HarmOutA;
  CE_Electry[27] := ChEdit_HarmOutB;
  CE_Electry[28] := ChEdit_HarmOutC;
  CE_Electry[29] := ChEdit_BaseOutZ;
  CE_Electry[30] := ChEdit_BaseOutA;
  CE_Electry[31] := ChEdit_BaseOutB;
  CE_Electry[32] := ChEdit_BaseOutC;

  CE_DelayTime[1] := ChEdit_FormerS;
  CE_DelayTime[2] := ChEdit_FormerG;
  CE_DelayTime[3] := ChEdit_FormerQ;
  CE_DelayTime[4] := ChEdit_FormerDX;
  CE_DelayTime[5] := ChEdit_FormerDL;
  CE_DelayTime[6] := ChEdit_FormerGDL;
  CE_DelayTime[7] := ChEdit_LatterS;
  CE_DelayTime[8] := ChEdit_LatterG;
  CE_DelayTime[9] := ChEdit_LatterQ;
  CE_DelayTime[10] := ChEdit_LatterDX;
  CE_DelayTime[11] := ChEdit_LatterDL;
  CE_DelayTime[12] := ChEdit_LatterGDL;

  CE_VolCurr[1] := ChEdit_HarmVoltA;
  CE_VolCurr[2] := ChEdit_HarmVoltB;
  CE_VolCurr[3] := ChEdit_HarmVoltC;
  CE_VolCurr[4] := ChEdit_HarmCurrA;
  CE_VolCurr[5] := ChEdit_HarmCurrB;
  CE_VolCurr[6] := ChEdit_HarmCurrC;
  CE_VolCurr[7] := ChEdit_VoltAberrA;
  CE_VolCurr[8] := ChEdit_VoltAberrB;
  CE_VolCurr[9] := ChEdit_VoltAberrC;
  CE_VolCurr[10] := ChEdit_CurrAberrA;
  CE_VolCurr[11] := ChEdit_CurrAberrB;
  CE_VolCurr[12] := ChEdit_CurrAberrC;

  FE_BreadPos[1] := FlatEdit1;
  FE_BreadPos[2] := FlatEdit2;
  FE_BreadPos[3] := FlatEdit3;
  FE_BreadPos[4] := FlatEdit4;
  FE_BreadPos[5] := FlatEdit5;
  FE_BreadPos[6] := FlatEdit6;
  FE_BreadPos[7] := FlatEdit7;
  FE_BreadPos[8] := FlatEdit8;
  FE_BreadPos[9] := FlatEdit9;
  FE_BreadPos[10] := FlatEdit10;
  LB_BreadPos[1] := Label4;
  LB_BreadPos[2] := Label5;
  LB_BreadPos[3] := Label6;
  LB_BreadPos[4] := Label7;
  LB_BreadPos[5] := Label8;
  LB_BreadPos[6] := Label9;
  LB_BreadPos[7] := Label10;
  LB_BreadPos[8] := Label11;
  LB_BreadPos[9] := Label12;
  LB_BreadPos[10] := Label13;
  
  CE_EventTime[1] := ChEdit_Time1;
  CE_EventTime[2] := ChEdit_Time2;
  CE_EventTime[3] := ChEdit_Time3;
  CE_EventTime[4] := ChEdit_Time4;
  CE_EventTime[5] := ChEdit_Time5;
  CE_EventTime[6] := ChEdit_Time6;
  CE_EventTime[7] := ChEdit_Time7;
  CE_EventTime[8] := ChEdit_Time8;
  CE_EventTime[9] := ChEdit_Time9;
  CE_EventTime[10] := ChEdit_Time10;
  FE_Value1[1] := ChEdit_Value11 ;
  FE_Value1[2] := ChEdit_Value12 ;
  FE_Value1[3] := ChEdit_Value13 ;
  FE_Value1[4] := ChEdit_Value14 ;
  FE_Value1[5] := ChEdit_Value15 ;
  FE_Value1[6] := ChEdit_Value16 ;
  FE_Value1[7] := ChEdit_Value17 ;
  FE_Value1[8] := ChEdit_Value18;
  FE_Value1[9] := ChEdit_Value19 ;
  FE_Value1[10] := ChEdit_Value110 ;

  CE_Others[1] := ChEdit_RepairAG;
  CE_Others[2] := ChEdit_RepairBG;
  CE_Others[3] := ChEdit_RepairCG;
  CE_Others[4] := ChEdit_BaseVolt;
  CE_Others[5] := ChEdit_BaseCurr;
  CE_Others[6] := ChEdit_RecSpace7;
  CE_Others[7] := ChEdit_RecSpace8;
  CE_Others[8] := ChEdit_RecSpace9;
  CE_Others[9] :=  ChEdit_DSP;
  CE_Others[10] := ChEdit_MeterMode4;
  CE_Others[11] := ChEdit_HRepair;

  CE_Others[12] := ChEdit_NRepair;
  CE_Others[13] := ChEdit_BurthMode2;


  FCB_MeterMode[1] := CB_Byte0;
  FCB_MeterMode[2] := CB_Byte1;
  FCB_MeterMode[3] := CB_Byte2;
  FCB_MeterMode[4] := CB_Byte3;
  CB_BurthMode2[1] := FlatCheckBox1;
  CB_BurthMode2[2] := FlatCheckBox2;
  CB_BurthMode2[3] := FlatCheckBox3;
  CB_BurthMode2[4] := FlatCheckBox4;
  CB_BurthMode2[5] := FlatCheckBox5;
  CB_BurthMode2[6] := FlatCheckBox6;
  CB_BurthMode2[7] := FlatCheckBox7;
  CB_BurthMode2[8] := FlatCheckBox8;
  CB_BurthMode2[9] := FlatCheckBox9;
  CB_BurthMode2[10] := FlatCheckBox10;
  CB_BurthMode2[11] := FlatCheckBox11;
  CB_BurthMode2[12] := FlatCheckBox12;
  CB_BurthMode2[13] := FlatCheckBox13;
  CB_BurthMode2[14] := FlatCheckBox14;
  CB_BurthMode2[15] := FlatCheckBox15;
  CB_BurthMode2[16] := FlatCheckBox16;
  CB_BurthMode2[17] := FlatCheckBox17;
  CB_BurthMode2[18] := FlatCheckBox18;
  CB_BurthMode2[19] := FlatCheckBox19;
  CB_BurthMode2[20] := FlatCheckBox20;
  CB_BurthMode2[21] := FlatCheckBox21;
  CB_BurthMode2[22] := FlatCheckBox22;
  CB_BurthMode2[23] := FlatCheckBox23;
  CB_BurthMode2[24] := FlatCheckBox24;
  CB_BurthMode2[25] := FlatCheckBox25;
  CB_BurthMode2[26] := FlatCheckBox26;
  CB_BurthMode2[27] := FlatCheckBox27;
  CB_BurthMode2[28] := FlatCheckBox28;
  CB_BurthMode2[29] := FlatCheckBox29;
  CB_BurthMode2[30] := FlatCheckBox30;
  CB_BurthMode2[31] := FlatCheckBox31;
  CB_BurthMode2[32] := FlatCheckBox32;
  CB_BurthMode2[33] := FlatCheckBox33;
  CB_BurthMode2[34] := FlatCheckBox34;
  CB_BurthMode2[35] := FlatCheckBox35;
  CB_BurthMode2[36] := FlatCheckBox36;
  CB_BurthMode2[37] := FlatCheckBox37;
  CB_BurthMode2[38] := FlatCheckBox38;
  CB_BurthMode2[39] := FlatCheckBox39;
  CB_BurthMode2[40] := FlatCheckBox40;
  CB_BurthMode2[41] := FlatCheckBox41;
  CB_BurthMode2[42] := FlatCheckBox42;
  CB_BurthMode2[43] := FlatCheckBox43;
  CB_BurthMode2[44] := FlatCheckBox44;
  CB_BurthMode2[45] := FlatCheckBox45;

  CE_Break[1] := ChEdit_BreakDegreeZ;
  CE_Break[2] := ChEdit_BreakDegreeA;
  CE_Break[3] := ChEdit_BreakDegreeB;
  CE_Break[4] := ChEdit_BreakDegreeC;
  CE_Break[5] := ChEdit_BreakTimesZ;
  CE_Break[6] := ChEdit_BreakTimesA;
  CE_Break[7] := ChEdit_BreakTimesB;
  CE_Break[8] := ChEdit_BreakTimesC;
  CE_Break[9] := ChEdit_LatelyBreakZ;
  CE_Break[10] := ChEdit_LatelyBreakA;
  CE_Break[11] := ChEdit_LatelyBreakB;
  CE_Break[12] := ChEdit_LatelyBreakC;
  CE_Break[13] := ChEdit_ResumeBreakZ;
  CE_Break[14] := ChEdit_ResumeBreakA;
  CE_Break[15] := ChEdit_ResumeBreakB;
  CE_Break[16] := ChEdit_ResumeBreakC;
  PageControl.ActivePageIndex := 0;
  PageIndex := 0; 
end;

procedure TBaseForm.PageControlChange(Sender: TObject);
begin
   PageIndex :=PageControl.ActivePageIndex;
   if((PageIndex=0) or (PageIndex=2)or(PageIndex=8)) then
     FEB_Write.Enabled := true
   else
     FEB_Write.Enabled := false;
end;

procedure TBaseForm.SB_CloseClick(Sender: TObject);
begin
   Close;
end; 
procedure TBaseForm.RichEditDblClick(Sender: TObject);
begin
  RichEdit.Clear;
end;

procedure TBaseForm.FormClose(Sender: TObject; var Action: TCloseAction);
var
   handle : HWND;
begin
    handle:=FindWindow(nil,'多功能电表通讯规约测试软件');
    try           //发送消息通知主窗口重新初始化串口
      PostMessage(handle,WM_INITCOMM,0,0);
    except
    end;
end;

end.

⌨️ 快捷键说明

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