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

📄 addac.~pas

📁 使用Delphi 6.0开发用于控制空调的程序
💻 ~PAS
字号:
unit ADDAC;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, DB, ADODB, Grids, DBGrids, DBCtrls, Mask;

type
  TfrmADDAC = class(TForm)
    grp1: TGroupBox;
    lbl2: TLabel;
    cbbID: TComboBox;
    lbl3: TLabel;
    cbbADd: TComboBox;
    btnADD: TButton;
    dbgrd1: TDBGrid;
    qryac: TADOQuery;
    dsac: TDataSource;
    lbl1: TLabel;
    grp2: TGroupBox;
    lbl5: TLabel;
    edttimer: TEdit;
    lbl6: TLabel;
    btntimer: TButton;
    lbl4: TLabel;
    Label1: TLabel;
    edttimer2: TEdit;
    btnGetTimer: TButton;
    btnStart: TButton;
    btnStop: TButton;
    qryac1: TADOQuery;
    lbl7: TLabel;
    edtACName: TEdit;
    dbcbbid: TDBComboBox;
    dbcbbadd: TDBComboBox;
    dbedtname: TDBEdit;
    btndel: TButton;
    procedure FormCreate(Sender: TObject);
    procedure btntimerClick(Sender: TObject);
    procedure btnGetTimerClick(Sender: TObject);
    procedure btnStartClick(Sender: TObject);
    procedure btnStopClick(Sender: TObject);
    procedure btnADDClick(Sender: TObject);
    procedure btndelClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormPaint(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmADDAC: TfrmADDAC;

implementation

{$R *.dfm}

uses
  Main;
procedure TfrmADDAC.FormCreate(Sender: TObject);
begin
   if qryac.Active = False then
     qryac.Active := True;
   if Main.frmain.tmrTC.Enabled = True then
   begin
      btnStop.Enabled := False;
      btnStart.Enabled := True ;
   end
   else
   begin
      btnStop.Enabled := True;
      btnStart.Enabled := False;
   end;
   
end;

procedure TfrmADDAC.btntimerClick(Sender: TObject);
begin
   Main.frmain.tmrTC.Interval := StrToInt(edttimer.Text) * 1000;
   Main.frmain.tmrTC.Enabled := True;
end;

procedure TfrmADDAC.btnGetTimerClick(Sender: TObject);
var
  i,j:Integer;
begin
    j := Main.frmain.tmrTC.Interval;
    i := j div 1000 ;
    edttimer2.Text := IntToStr(i);
end;

procedure TfrmADDAC.btnStartClick(Sender: TObject);
begin
  if Main.frmain.tmrTC.Enabled = False then
   Main.frmain.tmrTC.Enabled := True ;
  btnStart.Enabled := False;
  btnStop.Enabled := True;
end;

procedure TfrmADDAC.btnStopClick(Sender: TObject);
begin
    if Main.frmain.tmrTC.Enabled = True  then
   Main.frmain.tmrTC.Enabled := False ;
    btnStart.Enabled := True;
  btnStop.Enabled := False;
   
end;

procedure TfrmADDAC.btnADDClick(Sender: TObject);
var
  stradd,strid:string;
  iID:Integer;
begin
  stradd := trim(dbcbbadd.Text);
  strid := Trim(dbcbbid.Text );
  if (strid[1] >'F') or (strid[2] > 'F') then
  begin
    ShowMessage('接口板地址有误,请重新输入;');
  end;
  iID := StrToInt(strid[1])*16 + StrToInt(strid[2]);
  if iID > 31 then
    ShowMessage('接口板地址有误,请重新输入;输入的地址范围必须在0——31内!');
  if (stradd[1] >'F') or (stradd[2] > 'F') then
  begin
    ShowMessage('空调地址有误,请重新输入;');
  end;
   try
   with qryac1 do
   begin
       Close;
       SQL.Clear;
       SQL.Add('select * from AC where ACAddress =:ACAddress_Val and id =:id_Val');
       Parameters.ParamByName('ACAddress_Val').Value := stradd ;
       Parameters.ParamByName('id_Val').Value :=  strid;
       Open;
       if (RecordCount <> 1 ) then
       begin
           Close;
           SQL.Clear;
           SQL.Add('insert into AC (ACAddress,id,name)');
           SQL.Add('values (:ACAddress_Val,:id_Val,:name_val)') ;
           Parameters.ParamByName('ACAddress_Val').Value := dbcbbadd.Text  ;
           Parameters.ParamByName('id_Val').Value := dbcbbid.Text ;
           Parameters.ParamByName('name_val').Value := dbedtname.Text ;
           ExecSQL;
           ShowMessage('恭喜,恭喜,添加空调成功!');
           qryac.Active := False;
           qryac.Active := True;
       end
       else
       begin
          //ShowMessage('Sorry!该空调地址已经存在!');
          Edit;
          FieldByName('name').Value := dbedtname.Text;
          Post;
          ShowMessage('恭喜,恭喜,修改成功!');
          qryac.Active := False;
           qryac.Active := True;
          //cbbID.SetFocus;
       end;  

   end;
   except
     ShowMessage('Sorry!添加空调失败!');
   end;
end;

procedure TfrmADDAC.btndelClick(Sender: TObject);
begin
    with qryac1 do
    begin
       Close;
       SQL.Clear;
       SQL.Add('select * from AC where ACAddress =:ACAddress_Val and id =:id_Val');
       Parameters.ParamByName('ACAddress_Val').Value := dbcbbadd.Text ;
       Parameters.ParamByName('id_Val').Value := dbcbbid.Text;
       Open;
       if (RecordCount <> 1 ) then
       begin

       end
       else
       begin
          if Application.MessageBox('您确实要删除该空调地址吗?', '提示', MB_OKCANCEL
        + MB_ICONQUESTION + MB_DEFBUTTON2) = IDOK then
         begin
             Delete;
             ExecSQL;
             ShowMessage('删除成功');
             qryac.Active := False;
             qryac.Active := True;
         end
        else
        begin
         //Abort;
         end;
       end;  
    end;  
end;

procedure TfrmADDAC.FormClose(Sender: TObject; var Action: TCloseAction);
var
  str:string;
  i:Integer;
begin
    with frmain.qryNum do
    begin
       Close;
       SQL.Clear;
       SQL.Add('select * from AC');
       Open;
       if not IsEmpty then
       begin
          First;
          frmain.iNum := 1;
          while not Eof do
          begin
            Next ;
            frmain.iNum := frmain.iNum + 1;
          end;
       end;  
    end;
    if frmain.iNum >= 1 then
    begin
       for i:= 1 to frmain.iNum -1 do
       begin
          with frmain.qryNum do
          begin
           Close;
           SQL.Clear;
           SQL.Add('select name from AC where ACAddress =:name_val');
           Parameters.ParamByName('name_val').Value := '0'+ IntToStr(i);
           Open;
           if not IsEmpty then
           begin
             First;
             str := FieldByName('name').AsString ;
             case i of
               1:
               begin
                 frmain.grp1.Enabled := True;
                 frmain.grp1.Caption := IntToStr(i)+'号'+ str+'空调';
               end;
               2:
               begin
                 frmain.GroupBox1.Enabled := True;
                 frmain.GroupBox1.Caption := IntToStr(i)+'号'+ str+'空调';
               end;
               3:
               begin
                 frmain.GroupBox2.Enabled := True;
                 frmain.GroupBox2.Caption := IntToStr(i)+'号'+ str+'空调' ;
               end;
               4:
               begin
                 frmain.GroupBox3.Enabled := True;
                 frmain.GroupBox3.Caption := IntToStr(i)+'号'+ str+'空调' ;
               end;
               5:
               begin
                 frmain.GroupBox4.Enabled := True;
                 frmain.GroupBox4.Caption := IntToStr(i)+'号'+ str+'空调' ;
               end;
               6:
               begin
                 frmain.GroupBox5.Enabled := True;
                 frmain.GroupBox5.Caption := IntToStr(i)+'号'+ str+'空调' ;
               end;
               7:
               begin
                 frmain.GroupBox6.Enabled := True;
                 frmain.GroupBox6.Caption := IntToStr(i)+'号'+ str+'空调' ;
               end;
               8:
               begin
                 frmain.GroupBox7.Enabled := True;
                 frmain.GroupBox7.Caption := IntToStr(i)+'号'+ str+'空调' ;
               end;
             end;
           end;
         end;
       end;
    end;
    for i := frmain.iNum to 8 do
    begin
      case i of
        1:
        begin
           frmain.grp1.Caption := IntToStr(i)+'号'+ '备用空调';
           frmain.grp1.Enabled := False;
        end;
        2:
        begin
           frmain.GroupBox1.Caption := IntToStr(i)+'号'+ '备用空调';
           frmain.GroupBox1.Enabled := False;
        end;
        3:
        begin
           frmain.GroupBox2.Caption := IntToStr(i)+'号'+ '备用空调';
           frmain.GroupBox2.Enabled := False;
        end;
        4:
        begin
           frmain.GroupBox3.Caption := IntToStr(i)+'号'+ '备用空调';
           frmain.GroupBox3.Enabled := False;
        end;
        5:
        begin
           frmain.GroupBox4.Caption := IntToStr(i)+'号'+ '备用空调';
           frmain.GroupBox4.Enabled := False;
        end;
        6:
         begin
           frmain.GroupBox5.Caption := IntToStr(i)+'号'+ '备用空调';
           frmain.GroupBox5.Enabled := False;
        end;
        7:
         begin
           frmain.GroupBox6.Caption := IntToStr(i)+'号'+ '备用空调';
           frmain.GroupBox6.Enabled := False;
        end;
        8:
         begin
           frmain.GroupBox7.Caption := IntToStr(i)+'号'+ '备用空调';
           frmain.GroupBox7.Enabled := False;
        end;
      end;
    end;  
end;

procedure TfrmADDAC.FormPaint(Sender: TObject);
begin
     if Main.frmain.tmrTC.Enabled = True then
   begin
      btnStop.Enabled := False;
      btnStart.Enabled := True ;
   end
   else
   begin
      btnStop.Enabled := True;
      btnStart.Enabled := False;
   end;
end;

end.

⌨️ 快捷键说明

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