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

📄 main.~pas

📁 使用Delphi 6.0开发用于控制空调的程序
💻 ~PAS
📖 第 1 页 / 共 3 页
字号:

procedure Tfrmain.Image18Click(Sender: TObject);
begin
  iClick := 6;
   Setting.ShowModal;
end;

procedure Tfrmain.Image20Click(Sender: TObject);
begin
  iClick := 7;
   Setting.ShowModal;
end;

procedure Tfrmain.Image22Click(Sender: TObject);
begin
  iClick := 8;
   Setting.ShowModal;
end;

procedure Tfrmain.Label4Click(Sender: TObject);
begin
   ShowMessage(IntToStr(iNum));
end;

procedure Tfrmain.N15Click(Sender: TObject);
begin
   frmComm.ShowModal;
end;

procedure Tfrmain.mxBarHeaders3Buttons3Click(Sender: TObject);
begin
  frmADDAC.ShowModal;
end;

procedure Tfrmain.tmrSaveTimer(Sender: TObject);
var
  SThread:TSendThread;
begin
//    iSave := iSave + 1;
//    if iSave >= 2 then
//    begin
//      iSave := 0;
//    end;
   //Inc(tempSendCount);
   if tempSendCount <> 99 then
   begin
      statMain.Panels[2].Text  := '通信中断,请检查线路!';
      if main.frmain.Spcomm1.PortOpen  then
      begin
              try
                 main.frmain.Spcomm1.StopComm;
              except
                frmain.statMain.Panels[1].Text := '关闭串口失败';
              end;
      end ;
       Sleep(5);
     if not main.frmain.Spcomm1.PortOpen  then
          begin
              try
                 main.frmain.Spcomm1.StartComm;
              except
                frmain.statMain.Panels[1].Text := '打开串口失败,'+ '当前串口名:'+Main.frmain.Spcomm1.CommName+',波特率为:'+IntToStr(Main.frmain.Spcomm1.BaudRate);
              end;
    end;
      tempSendCount := 0;
   end;
   if WSendCount >= (WRecvCount + 5) then
   begin
     statMain.Panels[1].Text  := '通信中断,请检查线路!';
     if main.frmain.Spcomm1.PortOpen  then
      begin
              try
                 main.frmain.Spcomm1.StopComm;
              except
                 frmain.statMain.Panels[1].Text := '关闭串口失败';
              end;
      end ;
     Sleep(5);
     if not main.frmain.Spcomm1.PortOpen  then
          begin
              try
                 main.frmain.Spcomm1.StartComm;
              except
                frmain.statMain.Panels[1].Text := '打开串口失败,'+ '当前串口名:'+Main.frmain.Spcomm1.CommName+',波特率为:'+IntToStr(Main.frmain.Spcomm1.BaudRate);
              end;
    end;
     tempSendCount := 0;
     WSendCount :=WRecvCount ;
   end
   else
   if (tempSendCount <> 99)or(WSendCount >= (WRecvCount + 3)) or (WSendCount = 0 ) or (WRecvCount = 0 )then
   begin
     bSend := true;
     SThread := TSendThread.Create(False);
     Inc(WSendCount);
     statMain.Panels[1].Text :='定时触发发送线程开始' ;
   end;
   
end;

procedure Tfrmain.FormPaint(Sender: TObject);
begin
   SendCycCommand(iNum);
   //frmain.Caption := ''
   statMain.Panels[3].Text := '当前用户:'+ User;
   statMain.Panels[4].Text := '权限:' + Operater;
end;

procedure Tfrmain.imgFan1Click(Sender: TObject);
begin
   iClick := 1;
   frmFanWind.ShowModal;
end;

procedure Tfrmain.imgFan2Click(Sender: TObject);
begin
   iClick := 2;
   frmFanWind.ShowModal;
end;

procedure Tfrmain.imgFan3Click(Sender: TObject);
begin
   iClick := 3;
   frmFanWind.ShowModal;
end;

procedure Tfrmain.imgFan4Click(Sender: TObject);
begin
    iClick := 4;
   frmFanWind.ShowModal;
end;

procedure Tfrmain.imgFan5Click(Sender: TObject);
begin
   iClick := 5;
   frmFanWind.ShowModal;
end;

procedure Tfrmain.imgFan6Click(Sender: TObject);
begin
   iClick := 6;
   frmFanWind.ShowModal;
end;

procedure Tfrmain.imgFan7Click(Sender: TObject);
begin
    iClick := 7;
   frmFanWind.ShowModal;
end;

procedure Tfrmain.imgFan8Click(Sender: TObject);
begin
    iClick := 8;
   frmFanWind.ShowModal;
end;

procedure Tfrmain.FormDestroy(Sender: TObject);
begin
    F_Login.Free;
end;
procedure Tfrmain.imgSetTemp1Click(Sender: TObject);
begin
    iClick := 1;
    frmSetTemp.ShowModal;
end;
procedure Tfrmain.imgSetTemp2Click(Sender: TObject);
begin
    iClick := 2;
    frmSetTemp.ShowModal;
end;
procedure Tfrmain.imgSetTemp3Click(Sender: TObject);
begin
    iClick := 3;
    frmSetTemp.ShowModal;
end;
procedure Tfrmain.imgSetTemp4Click(Sender: TObject);
begin
    iClick := 4;
    frmSetTemp.ShowModal;
end;
procedure Tfrmain.imgSetTemp5Click(Sender: TObject);
begin
    iClick := 5;
    frmSetTemp.ShowModal;
end;
procedure Tfrmain.imgSetTemp6Click(Sender: TObject);
begin
    iClick := 6;
    frmSetTemp.ShowModal;
end;
procedure Tfrmain.imgSetTemp7Click(Sender: TObject);
begin
    iClick := 7;
    frmSetTemp.ShowModal;
end;
procedure Tfrmain.imgSetTemp8Click(Sender: TObject);
begin
    iClick := 8;
    frmSetTemp.ShowModal;
end;

procedure Tfrmain.imgRun1Click(Sender: TObject);
begin
   iClick := 1;
   frmHotAndCold.ShowModal;
end;

procedure Tfrmain.imgRun2Click(Sender: TObject);
begin
    iClick := 2;
   frmHotAndCold.ShowModal;
end;

procedure Tfrmain.imgRun3Click(Sender: TObject);
begin
    iClick := 3;
   frmHotAndCold.ShowModal;
end;

procedure Tfrmain.imgRun4Click(Sender: TObject);
begin
    iClick := 4;
   frmHotAndCold.ShowModal;
end;

procedure Tfrmain.imgRun5Click(Sender: TObject);
begin
    iClick := 5;
   frmHotAndCold.ShowModal;
end;

procedure Tfrmain.imgRun6Click(Sender: TObject);
begin
   iClick := 6;
   frmHotAndCold.ShowModal;
end;

procedure Tfrmain.imgRun7Click(Sender: TObject);
begin
    iClick := 7;
   frmHotAndCold.ShowModal;
end;

procedure Tfrmain.imgRun8Click(Sender: TObject);
begin
   iClick := 8;
   frmHotAndCold.ShowModal;
end;

procedure Tfrmain.Label58DblClick(Sender: TObject);
var
  strTemp:string;
  ss:string;
begin
  if not Spcomm1.PortOpen  then
      Spcomm1.StartComm;
  //try
   //strTemp :='~200260E00000'+ #02 + '300' + '010101' +#03;
  //  strTemp :='~200160E0A006'+ '400'+'015';
  strTemp :='~200160E0600A'+ '630'+'0'+'022'+'022';
 //  strTemp :='~200160430000';//+ '400'+'01';
  // strTemp :='~200160430000';//+ '400'+'01';
   strTemp :='~200160E0B005'+ '620'+'00';//+'022'+'022';
  // strTemp := strTemp + BCC(strTemp);
  //strTemp :=strTemp + chk(Copy(strTemp,2,(Length(strTemp)-1) ) ));
     ss:=chk(Copy(strTemp,2,(Length(strTemp)-1) ) );
     strTemp := strTemp + ss + #13;
   if Spcomm1.WriteCommData( PChar(strTemp),Length(strTemp)) = True then
   begin
     ShowMessage('发送成功'+ strTemp);
   end;  
     // mmo2.Lines.Add('发送成功'+ strTemp);

end;

procedure Tfrmain.FormShow(Sender: TObject);
begin
   //ICon.Handle := LoadIcon(hIns);
   MyTrayIcon.cbSize := SizeOf(TNotifyIconData);
   MyTrayIcon.Wnd := Handle;
   MyTrayIcon.uID := 1;
   MyTrayIcon.uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE;
   MyTrayIcon.uCallBackMessage := WM_MYTRAYICONCALLBACK;
   MyTrayIcon.hIcon := Application.Icon.Handle;
   StrCopy(MyTrayIcon.szTip,PChar('大金空调远程控制系统'));
   Shell_NotifyIcon(NIM_ADD,@MyTrayIcon);
   ShowWindow(Handle,sw_Hide);
   Application.ShowMainForm := False;
   setForegroundWindow(Application.Handle);

end;
procedure Tfrmain.WMMyTrayIconCallBack(var Msg:TMessage);
var
  CursorPos:TPoint;
  pM:HMENU;
begin
   case Msg.LParam of 
     WM_LBUTTONDBLCLK : //双击消息:弹出主窗口 
     begin 
       Visible := not Visible ; 
       Application.ShowMainForm := Visible ;
       SetForegroundWindow(Application.Handle);
     end ; 
     WM_RBUTTONDOWN : //鼠标右键:弹出菜单 
     begin 
       GetCursorPos(CursorPos); 
{      Popupmenu1.Popup(CursorPos.X,CursorPos.Y);
       popupmen1里面就可以加入显示主窗口、退出等功能。这个右键菜单可以是静态的,如上面一句来弹出;也可以动态建立,如下面所示的方法:} 
       pM := Createpopupmenu;//建立一个Hmenu,pm:hmenu;
       AppendMenu(pm,0,ord('A'),'关于....');//在指定的菜单里添加一个菜单项
       AppendMenu(pm,0,Ord('B'),'&Exit');
       //加入菜单事件---》处理WMCOMMAND消息即可 
       TrackPopupMenu(pm,Tpm_BottomAlign or Tpm_RightAlign, CursorPos.x, CursorPos.y, 0,handle,nil); 
       //在图标上方显示该弹出式菜单
     end ; 
   end ;
end;
procedure Tfrmain.WMCommand(var msg:TWMCommand);
begin
  case msg.itemID of
       Ord('A'):showmessage('请双击打开程序');
       Ord('B'):Application.Terminate;
  else
    inherited;
  end;
end;
procedure Tfrmain.Minimize(var mess:TWMNCLButtonDown);
begin
    //Visible := False;
    if mess.HitTest = htReduce then
       Self.Hide
    else
       inherited;
end;  

procedure Tfrmain.edtWaringState2Change(Sender: TObject);
begin
     if edtWaringState2.Text = 'OFF' then
      lblWaringState2.Color := clGreen
  else
  if edtWaringState2.Text = 'ON' then
      lblWaringState2.Color := clRed;
end;

procedure Tfrmain.edtWaringState3Change(Sender: TObject);
begin
    if edtWaringState3.Text = 'OFF' then
      lblWaringState3.Color := clGreen
  else
  if edtWaringState3.Text = 'ON' then
      lblWaringState3.Color := clRed;
end;

procedure Tfrmain.edtWaringState4Change(Sender: TObject);
begin
    if edtWaringState4.Text = 'OFF' then
      lblWaringState4.Color := clGreen
  else
  if edtWaringState4.Text = 'ON' then
      lblWaringState4.Color := clRed;
end;

procedure Tfrmain.edtWaringState5Change(Sender: TObject);
begin
   if edtWaringState5.Text = 'OFF' then
      lblWaringState5.Color := clGreen
  else
  if edtWaringState5.Text = 'ON' then
      lblWaringState5.Color := clRed;
end;

procedure Tfrmain.edtWaringState6Change(Sender: TObject);
begin
    if edtWaringState6.Text = 'OFF' then
      lblWaringState6.Color := clGreen
  else
  if edtWaringState6.Text = 'ON' then
      lblWaringState6.Color := clRed;
end;

procedure Tfrmain.edtWaringState7Change(Sender: TObject);
begin
    if edtWaringState7.Text = 'OFF' then
      lblWaringState7.Color := clGreen
  else
  if edtWaringState7.Text = 'ON' then
      lblWaringState7.Color := clRed;
end;

procedure Tfrmain.edtWaringState8Change(Sender: TObject);
begin
    if edtWaringState8.Text = 'OFF' then
      lblWaringState8.Color := clGreen
  else
  if edtWaringState8.Text = 'ON' then
      lblWaringState8.Color := clRed;
end;

procedure Tfrmain.N13Click(Sender: TObject);
begin
    F_Register.ShowModal;
end;

procedure Tfrmain.N14Click(Sender: TObject);
begin
    F_PP_Modi.ShowModal;
end;

procedure Tfrmain.tmrTCTimer(Sender: TObject);
var
  iMonth:Integer;
  strNow:string;
  strReg:string;
begin

  strNow := DateToStr(Now);
  //ShowMessage(strNow);
  if iReg <> 99 then
  begin
      with qryReg do
      begin
         Close;
         SQL.Clear;
         SQL.Add('select * from reg');
         Open ;
         if RecordCount = 1 then
         begin
           strReg := Trim(FieldByName('reg').AsString );
           if strReg = 'air123456789' then
             iReg := 99;
         end
         else
         if strReg = '' then
           begin
               if Length(strNow) = 8 then
               begin
                 iMonth := StrToInt( Copy(strNow,6,1));
                 if iMonth >= 7 then
                 begin
                         if  not reg.Form1.Showing then 
                         reg.Form1.ShowModal;
                         //Application.Terminate;
                 end;
               end;
           end;
      end;
  end;  

    iReadInfoCount := iReadInfoCount + 1;
    iReadTransResult := iReadTransResult + 1;
    iCOOPS := iCOOPS + 1;
    iReadInfoCount2 := iReadInfoCount2 + 1;
    iReadTransResult2 := iReadTransResult2 + 1;
    iCOOPS2 := iCOOPS2 + 1;
    if (iReadInfoCount = 360) then
    begin
      iReadInfoCount := 0;
      iSaveReadInfo := 1;
    end;
    if ( iReadTransResult = 360) then
    begin
      iReadTransResult := 0;
      iSaveReadTransResult := 1;
    end;
    if ( iCOOPS = 360) then
    begin
      iCOOPS := 0;
      iSaveCOOPS := 1;
    end;
    if (iReadInfoCount2 = 360) then
    begin
      iReadInfoCount2 := 0;
      iSaveReadInfo2 := 1;
    end;
    if ( iReadTransResult2 = 360) then
    begin
      iReadTransResult2 := 0;
      iSaveReadTransResult2 := 1;
    end;
    if ( iCOOPS2 = 360) then
    begin
      iCOOPS2 := 0;
      iSaveCOOPS2 := 1;
    end;
end;

procedure Tfrmain.tmrSendinterrputTimer(Sender: TObject);
var
  SThread:TSendThread;
begin
    if main.frmain.Spcomm1.PortOpen  then
      begin
              try
                 main.frmain.Spcomm1.StopComm;
              except
                frmain.statMain.Panels[1].Text := '关闭串口失败';
              end;
      end ;
       Sleep(5);
     if not main.frmain.Spcomm1.PortOpen  then
          begin
              try
                 main.frmain.Spcomm1.StartComm;
              except
                frmain.statMain.Panels[1].Text := '打开串口失败,'+ '当前串口名:'+Main.frmain.Spcomm1.CommName+',波特率为:'+IntToStr(Main.frmain.Spcomm1.BaudRate);
              end;
    end;
    Sleep(5);
    bSend := true;
   SThread := TSendThread.Create(False);
   Inc(WSendCount);
    statMain.Panels[1].Text :='中断定时触发发送线程启动!' ;
end;

end.

⌨️ 快捷键说明

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