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

📄 bjxmtj.pas

📁 本系统是基于企业局域网平台针对企业安防
💻 PAS
字号:
unit Bjxmtj;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Grids, DBGrids, DB, Buttons;

type
  TForm8 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Panel2: TPanel;
    Label3: TLabel;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Panel3: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    procedure BitBtn2Click(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn1Click(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    Function Convert(Num: Integer):integer; // 将二进制转换成十进制
    Function Change(Num: Integer): String;// 将十进制转换成二进制
    Function Ex(n: integer): Integer;//计算2的n次方
    procedure Edit2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BitBtn4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form8: TForm8;

implementation
  uses DataModal;
{$R *.dfm}

procedure TForm8.BitBtn2Click(Sender: TObject);
begin
  Edit1.Clear;
  Edit2.Clear;
  Edit1.SetFocus;
  with Data.ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from 报警项目表');
    Open;
  end;
  if Data.ADOQuery1.RecordCount>0 then
    DataSource1.DataSet := Data.ADOQuery1
  else
    DataSource1.DataSet := Nil;
end;

procedure TForm8.Edit2KeyPress(Sender: TObject; var Key: Char);
var
  i: Boolean;
begin
  i:= (Key<#8)or(Key>#8)and(Key<#48)or(Key>#49)or(Length(Edit2.Text)>=4)and(Key<>#8);
  if i then
    Key := #0;
end;

procedure TForm8.BitBtn1Click(Sender: TObject);
begin
  if (Trim(Edit1.Text)<>'')and(Length(Edit2.Text)=4)then
  begin
    Try
      with Data.ADOQuery2 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('Insert 报警项目表 values(:a,:b)');
        Parameters.ParamByName('a').Value := Trim(Edit2.Text);
        Parameters.ParamByName('b').Value := Trim(Edit1.Text);
        ExecSQL;
      end;
      Application.MessageBox('添加成功.','提示',64);
      BitBtn2.OnClick(Sender);
    Except
      Application.MessageBox('系统出错.','提示',64);
    End;
  end
  else
    Application.MessageBox('数据项有误.','提示',64);
end;

procedure TForm8.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = vk_Return then
    Edit2.SetFocus;
end;

procedure TForm8.Edit2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = vk_Return then
    BitBtn1.SetFocus;
end;

procedure TForm8.BitBtn4Click(Sender: TObject);
var
  max,min,mid: Integer;  
  xmsj: String;//记录生成的项目数据
begin
  with Data.ADOQuery2 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Select Max(项目数据)as bh From 报警项目表');
    Open; 
  end; 
  if Data.ADOQuery2.FieldByName('bh').Value<>Null then
  begin
    Max := Convert(StrToInt(Data.ADOQuery2.FieldByName('bh').Value));
    with Data.ADOQuery2 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Select Min(项目数据)as bh From 报警项目表');
      Open; 
    end; 
    Min := Convert(StrToInt(Data.ADOQuery2.FieldByName('bh').Value));
    if Min<>Max then
    begin
      if (Max -Min)>1 then
      begin
        For mid := (Min+1) to (Max-1) do
        begin
          with Data.ADOQuery2 do
          begin
            Close;
            SQL.Clear;
            SQL.Add('Select * From 报警项目表 where 项目数据 = :a');
            Parameters.ParamByName('a').Value :=  change(Mid);
            Open; 
          end;
          if Data.ADOQuery2.RecordCount<1 then
          begin
            xmsj := Change(Mid);
            Break;
          end
          else if Mid = Max-1 then
          begin
            xmsj := Change(Max+1);
            Break;
          end;
        end;
      end
      else
        xmsj := Change(Max+1);
    end
    else
      xmsj := Change(Max+1);
    end
  else
    xmsj := Change(1);
  Edit2.Text := Trim(xmsj);
  Edit1.SetFocus;
end;

function TForm8.Convert(Num: Integer): integer;
var
  Len,i,value: integer;
  NumString: String;
begin
  Value := 0;
  NumString := IntToStr(Num);
  Len := Length(NumString);
  For i := 1 to Len do
  begin
   if Copy(NumString,i,1) = '1' then
     Value := Value + Ex(Len-i)
  end;
  Result := Value;
end;

function TForm8.Change(Num: Integer): String;
var
  value,i: String;
begin
  while  Num <>0 do
  begin 
    i := IntToStr(Num Mod 2);
    value := i+ Value;
    Num := Num div 2;
  end;
  Case Length(Trim(Value)) of
    1: Value := '000'+ Value;
    2: Value := '00'+ Value;
    3: Value := '0'+ Value;
  end;
  result := value;
end;

function TForm8.Ex(n: integer): Integer;
var
  i,Value: Integer ;
begin
  Value := 1;
  if n = 0 then
  begin
    Result := 1;
    Exit;
  end;
  if n = 1 then
  begin
    Result := 2;
    Exit;
  end;
  For i := 1 to n do
    Value := Value* 2 ;
  Result := value;
end;


end.

⌨️ 快捷键说明

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