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

📄 add_point_pas.pas

📁 delphi6.0电子寻更源程序,用来计算保安有无查抄
💻 PAS
字号:
unit add_point_pas;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls, RXCtrls,Db;

type
  Tadd_point = class(TForm)
    Panel1: TPanel;
    BitBtn5: TBitBtn;
    edit1: TComboBox;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit5: TEdit;
    Edit4: TEdit;
    Edit6: TEdit;
    BitBtn2: TBitBtn;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    procedure BitBtn2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit5KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit6KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit3KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BitBtn5Click(Sender: TObject);
    procedure Edit2Exit(Sender: TObject);
    procedure Edit6Exit(Sender: TObject);
    procedure Edit5Exit(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure edit1Exit(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Edit4KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormActivate(Sender: TObject);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure Edit6KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
    _mode:string;
  public
    { Public declarations }
  end;

var
  add_point: Tadd_point;

implementation
uses point_pas,menu,dm_point_pas, FileCtrl,IniFiles;
{$R *.DFM}

procedure Tadd_point.BitBtn2Click(Sender: TObject);
begin
close;
end;

procedure Tadd_point.FormShow(Sender: TObject);
begin
if (screen.Height<600) and( screen.Width<800) then
  begin
  scaled:=true;
  //height:=round(height*longint(screen.height)*96 / 600/screen.pixelsperinch);
  //width :=round( width *longint(screen.width)*96 / 800/screen.pixelsperinch);
  //left:=round((screen.Width-Width)/2);
  //top:=round((screen.height-self.height)/2);
  height:=311;
  width:=293;
  left:=158;
  top:=101;
  //ScaleControls(screen.width, 800);
  //ScaleControls(96,screen.pixelsperinch);
  end
  else
  begin
  self.Height:=318;
  self.Width:=280;
  end;
edit1.SetFocus;
with dm_point.q_line do
begin
close;
open;
first;
//edit1.Clear ;
while not eof do
  begin
  edit1.Items.Add(fieldbyname('linename').asstring);
  next;
  end;
end;
end;

procedure Tadd_point.edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_return then
edit2.SetFocus ;
end;

procedure Tadd_point.Edit2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_return then
edit5.SetFocus ;
end;

procedure Tadd_point.Edit5KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_return then
edit6.SetFocus ;
end;

procedure Tadd_point.Edit6KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_return then
edit3.SetFocus ;
end;

procedure Tadd_point.Edit3KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_return then
edit4.SetFocus ;
end;

procedure Tadd_point.BitBtn5Click(Sender: TObject);
var bookmark1:tbookmark ;
recno1,recno2:integer;
begin
dm_point.q_find.Close;
dm_POINT.Q_FIND.OPEN;
dm_POINT.Q_FIND.First;
with dm_point.q_point_ls do
begin
close;
open;
if add_point.Caption='增加巡更點資訊' then
begin //增加巡更信息
 try
      if edit1.Text='' then
      begin
      Application.MessageBox('請輸入線路!','消息',MB_ICONINFORMATION);
      edit1.SetFocus;
      exit;
      end;
      if edit2.Text='' then
      begin
      Application.MessageBox('請輸入鈕號!','消息',MB_ICONINFORMATION);
      edit2.SetFocus ;
      exit;
      end;
      if edit6.Text='' then
      begin
      Application.MessageBox('請輸入次序號!','消息',MB_ICONINFORMATION);
      edit6.SetFocus ;
      exit;
      end;
      if dm_point.q_find.Locate('linename;node',vararrayOf([edit1.text,edit2.text]),[loCaseInsensitive]) then
      begin
      Application.MessageBox('該線路上已有相同的鈕號!','消息',MB_ICONINFORMATION);
      edit2.SetFocus ;
      edit2.Text:='';
      exit;
      end;
      if dm_point.q_find.Locate('linename;lseq',vararrayOf([edit1.text,strtoint(edit6.text)]),[loCaseInsensitive]) then
      begin
      Application.MessageBox('該線路上已有相同的次序號!','消息',MB_ICONINFORMATION);
      edit6.SetFocus;
      edit6.text:='';
      exit;
      end;
      //open;
      append;
      //gotobookmark(bookmark1);
      //freebookmark(bookmark1);
      edit;
      fieldbyname('linename').asstring:=uppercase(edit1.Text) ;
      fieldbyname('node').asstring:=uppercase(edit2.Text);
      fieldbyname('name').asstring:=uppercase(edit3.Text);
      fieldbyname('nodeplace').asstring:=uppercase(edit4.Text);
      fieldbyname('ntime').asinteger:=strtoint(edit5.text);
      fieldbyname('lseq').asinteger:=strtoint(edit6.text);
      post;
      add_point.Close ;
    except
      begin
      Application.MessageBox('資料錄入有誤,請重新輸入','消息',MB_ICONINFORMATION);
      exit;
      end;
    end;
end   //增加巡更信息
else
begin // 修改信息
bookmark1:=dm_point.q_point.GetBookmark;
recno1:=dm_point.q_point.RecNo;
    try
     if edit1.Text='' then
      begin
      Application.MessageBox('請輸入線路!','消息',MB_ICONINFORMATION);
    //gotobookmark(bookmark1);
    //freebookmark(bookmark1);
      exit;
      end;
      if edit2.Text='' then
      begin
      Application.MessageBox('請輸入鈕號!','消息',MB_ICONINFORMATION);
      exit;
      end;
      if edit6.Text='' then
      begin
      Application.MessageBox('請輸入次序號!','消息',MB_ICONINFORMATION);
     //gotobookmark(bookmark1);
     //freebookmark(bookmark1);
      exit;
      end;
      if dm_point.q_point.Locate('linename;node',vararrayOf([edit1.text,edit2.text]),[loCaseInsensitive]) then
      begin
         recno2:=dm_point.q_point.RecNo;
         if recno1<>recno2 then
         begin
         Application.MessageBox('該線路上已有相同的鈕號!','消息',MB_ICONINFORMATION);
         dm_point.q_point.gotobookmark(bookmark1);
         exit;
         end;
      end;
      if dm_point.q_point.Locate('linename;lseq',vararrayOf([edit1.text,strtoint(edit6.text)]),[loCaseInsensitive]) then
      begin
         recno2:=dm_point.q_point.RecNo;
         if recno1<>recno2 then
         begin
         Application.MessageBox('該線路上已有相同的次序號!','消息',MB_ICONINFORMATION);
         dm_point.q_point.gotobookmark(bookmark1);
         exit;
         end;
      end;
      Locate('id',(dm_point.q_point.fieldbyname('id').asinteger),[loCaseInsensitive]);
      edit;
      fieldbyname('linename').asstring:=uppercase(edit1.Text) ;
      fieldbyname('node').asstring:=uppercase(edit2.Text);
      fieldbyname('name').asstring:=uppercase(edit3.Text);
      fieldbyname('nodeplace').asstring:=uppercase(edit4.Text);
      fieldbyname('ntime').asinteger:=strtoint(edit5.text);
      fieldbyname('lseq').asinteger:=strtoint(edit6.text);
      post;
      self.close;
    except
      begin
      Application.MessageBox('資料錄入有誤,請重新輸入','消息',MB_ICONINFORMATION);
      exit;
      end;
    end; // end try
end;  //  修改信息
end;
end;

procedure Tadd_point.Edit2Exit(Sender: TObject);
var ch:string;
s1,s2,s3,s4:string;
//s:string;
begin
edit5.Text:=inttostr(10);
if edit2.text<>'' then
begin
ch:=uppercase(trim(edit2.Text)) ;
//s1:=((uppercase(trim(ch))<'0000') or (uppercase(trim(ch))>'000f'));
//s2:=((uppercase(trim(ch))<'0000') or (uppercase(trim(ch))>'00ff'));
//s3:=((uppercase(trim(ch))<'0000') or (uppercase(trim(ch))>'0fff'));
  try//try
  if (length(trim(ch)))<>4 then
   begin
   if _mode='0'  then
   Application.MessageBox('請輸入資訊鈕序列號的後4位!','消息',MB_ICONINFORMATION)
   else
   Application.MessageBox('請輸入4位號碼!','消息',MB_ICONINFORMATION);
   edit2.SetFocus ;
   edit2.Text :='';
   exit;
   end;
   s1:=uppercase(copy(ch,1,1));
   s2:=uppercase(copy(ch,2,1));
   s3:=uppercase(copy(ch,3,1));
   s4:=uppercase(copy(ch,4,1));
   {if _mode='0'  then
   begin
     if (((uppercase(s1)<'0')or(uppercase(s1)>'F'))or((uppercase(s2)<'0')or(uppercase(s2)>'F'))or((uppercase(s3)<'0')or(uppercase(S3)>'F'))or((uppercase(s4)<'4')or(uppercase(s4)>'F'))) then
      begin
      Application.MessageBox('請輸入資訊鈕序列號的後4位!','消息',MB_ICONINFORMATION);
      edit2.SetFocus ;
      edit2.Text :='';
      exit;
      end;
   end
   else
   begin}
      if (((uppercase(s1)<'0')or(uppercase(s1)>'F'))or((uppercase(s2)<'0')or(uppercase(s2)>'F'))or((uppercase(s3)<'0')or(uppercase(S3)>'F'))or((uppercase(s4)<'0')or(uppercase(s4)>'F'))) then
      begin
      Application.MessageBox('請輸入4位號碼!','消息',MB_ICONINFORMATION);
      edit2.SetFocus ;
      edit2.Text :='';
      exit;
      end;
 //  end;
  except
  begin
   if _mode='0'  then
   Application.MessageBox('請輸入資訊鈕序列號的後4位!','消息',MB_ICONINFORMATION)
   else
   Application.MessageBox('請輸入4位號碼!','消息',MB_ICONINFORMATION);
   edit2.SetFocus ;
   edit2.Text :='';
   exit;
   end;
  end;//try

end;
end;

procedure Tadd_point.Edit6Exit(Sender: TObject);
var
_lseq:integer;
begin
IF trim(EDIT5.Text)='' THEN
edit5.Text:='0';
if trim(edit6.text)<>'' then
 begin
  try
    _lseq:=strtoint(edit6.text);
    if _lseq<=0 then
     begin
       Application.MessageBox('次序號只能輸入大於零的整數!','消息',MB_ICONINFORMATION);
       edit6.text:='';
       edit6.SetFocus;
       exit;
     end;
  except
     on E: EConvertError do
     begin
       Application.MessageBox('次序號只能輸入整數!','消息',MB_ICONINFORMATION);
       edit6.text:='';
       edit6.SetFocus;
       exit;
     end;
  end;
 end;
end;


procedure Tadd_point.Edit5Exit(Sender: TObject);
var _ntime:integer;
begin
if trim(edit5.text)<>'' then
 begin
  try
    _ntime:=strtoint(edit5.text);
    if _ntime<0 then
     begin
       Application.MessageBox('向前間隔時間必須輸入大於或等於零的整數!','消息',MB_ICONINFORMATION);
       edit5.text:='';
       edit5.SetFocus;
       exit;
     end;
  except
     on E: EConvertError do
     begin
       Application.MessageBox('向前間隔時間必須輸入大於或等於零的整數!','消息',MB_ICONINFORMATION);
       edit5.text:='';
       edit5.SetFocus;
       exit;
     end;
  end;
 end;

end;


procedure Tadd_point.FormClose(Sender: TObject; var Action: TCloseAction);
begin
dm_point.q_point.close;
dm_point.q_point.open;
dm_point.q_point.Locate('id',(dm_point.q_point_ls.fieldbyname('id').asinteger),[loCaseInsensitive]);
end;

procedure Tadd_point.edit1Exit(Sender: TObject);
begin
if add_point.caption='增加巡更點資訊' then
  begin
   with dm_point.q_lseq do
    begin
     close;
     sql.Clear;
     sql.add('select distinct linename,lseq');
     sql.add('from point');
     sql.add('where linename=:linename');
     sql.add('order by lseq');
     parambyname('linename').asstring:=edit1.Text ;
     open;
     if recordcount=0 then
       edit6.Text:='1'
     else
       begin
       last;
       edit6.Text:=inttostr(fieldbyname('lseq').asinteger+1);
       end;
     end;
  end;
end;

procedure Tadd_point.Button1Click(Sender: TObject);
begin
Application.MessageBox(pchar('width='+inttostr(self.width)+'--'+'height='+inttostr(self.height)+'--'+'left='+inttostr(self.left)+'--top='+inttostr(self.top)),'消息',MB_ICONINFORMATION);

end;

procedure Tadd_point.Edit4KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_return then
BitBtn5click(self);
end;

procedure Tadd_point.FormActivate(Sender: TObject);
var
inif:tinifile;
temp,path,filename:string;
begin
filename:=ExtractFiledir(APPLICATION.EXENAME)+'\'+ExtractFilename(APPLICATION.EXENAME);//+'\hdxgxt.ini';
if not fileexists(filename) then
filename:=ExtractFileDir(APPLICATION.EXENAME)+'hdxgxt.ini'
else filename:=extractfiledir(application.exename)+'\hdxgxt.ini';
inif:=TInifile.Create(filename);
_mode:=inif.readstring('penmode','mode',temp);

end;

procedure Tadd_point.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9']) and (ord(key)<>8) then
   begin
   key:=#0;
   exit;
   end;
end;

procedure Tadd_point.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9']) and (ord(key)<>8) then
   begin
   key:=#0;
   exit;
   end;

end;

end.

⌨️ 快捷键说明

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