unit_settime.pas

来自「停车厂管理系统 麻雀虽小 但是五脏齐全」· PAS 代码 · 共 200 行

PAS
200
字号
unit Unit_settime;

interface

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

type
  Ttimecharge = class(TForm)
    ds_time: TDataSource;
    aq_time: TADOQuery;
    DBGrid1: TDBGrid;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    time1: TLabel;
    Label3: TLabel;
    time2: TEdit;
    echarge: TEdit;
    procedure FormShow(Sender: TObject);
    procedure time2Exit(Sender: TObject);
    procedure time2KeyPress(Sender: TObject; var Key: Char);
    procedure echargeKeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure echargeExit(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormCanResize(Sender: TObject; var NewWidth,
      NewHeight: Integer; var Resize: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
 
  end;

var
  timecharge: Ttimecharge;

implementation

uses Unit11;


{$R *.dfm}
procedure Ttimecharge.FormShow(Sender: TObject);
var
st: string;
begin
   aq_time.Close;
   aq_time.SQL.Clear;
   aq_time.SQL.Add('select dbo.fuca(time1) as time1,dbo.fuca(time2)as time2,charge from time order by timeid');
   aq_time.Open;
   if aq_time.IsEmpty then
     begin
       time1.Caption:='00:00:01';
     end
   else
     begin
       aq_time.Last;
       st:=aq_time.FieldValues['time2'];
       time1.Caption:=st;
     end;
   time2.Clear;
   echarge.Clear;
end;


procedure Ttimecharge.time2Exit(Sender: TObject);
begin
 if trim(time2.Text)<>''then
  begin
    try
    if strtotime(time2.Text)<=strtotime(time1.Caption) then
      begin
           messagebox(handle,'输入的终止时间不能小于或等于起始时间'+#10+'请重新输入!','系统提示',mb_ok+mb_iconinformation);
           time2.Clear;
           time2.SetFocus;
      end;
    except
    messagebox(handle,'输入的时间有问题请重新输入!','系统提示',mb_ok+mb_iconinformation);
    time2.Clear;
    time2.SetFocus;
    end
  end
end;

procedure Ttimecharge.time2KeyPress(Sender: TObject; var Key: Char);
begin
   if not (key in['0'..'9',':',#008]) then
     begin
       key:=#0;
       messagebox(handle,'请输入有效字符,例如14:21','系统提示',mb_ok+mb_iconinformation);
     end
end;

procedure Ttimecharge.echargeKeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in['0'..'9','.',#008]) then
     begin
       key:=#0;
       messagebox(handle,'请输入有效字符,例如0.8','系统提示',mb_ok+mb_iconinformation);
     end
end;

procedure Ttimecharge.Button1Click(Sender: TObject);
begin
  if trim(time2.Text)='' then
    begin
    messagebox(handle,'终止时间不能为空','系统提示',mb_ok+mb_iconinformation);
    time2.SetFocus;
    end
  else if trim(echarge.Text)='' then
    begin
    messagebox(handle,'折扣不能为空','系统提示',mb_ok+mb_iconinformation);
    echarge.SetFocus;
    end
  else
  begin
  aq_time.Close;
  aq_time.SQL.Clear;
  aq_time.SQL.Add('insert into time(time1,time2,charge) values(:time1,:time2,:charge)');
  aq_time.Parameters.ParamByName('time1').Value:=strtotime(time1.Caption);
  aq_time.Parameters.ParamByName('time2').Value:=strtotime(time2.Text);
  aq_time.Parameters.ParamByName('charge').Value:=strtofloat(echarge.Text);
  aq_time.ExecSQL;
  formshow(sender);
  end;
end;

procedure Ttimecharge.Button2Click(Sender: TObject);
begin
  if messagedlg('您确定要重新定制所有时间吗?'+#10+'点确定将删除所有定制的时间!',mtconfirmation,[mbok,mbno],0)=mrok  then
   begin
      aq_time.Close;
      aq_time.SQL.Clear;
      aq_time.SQL.Add('delete from time');
      aq_time.ExecSQL;
      formshow(sender);
    end
end;

procedure Ttimecharge.echargeExit(Sender: TObject);
var
  x:single;
begin
   if trim(echarge.text)<>'' then
     begin
     try
       x:=strtofloat(echarge.Text) ;
       if x>1 then
          begin
          messagebox(handle,'输入的折扣不能大于1,请重新输入','系统提示',mb_ok+mb_iconinformation);
          echarge.Clear;
          echarge.SetFocus;
          end
     except
       messagebox(handle,'请输入有效字符,例如0.8','系统提示',mb_ok+mb_iconinformation);
       echarge.Clear;
       echarge.SetFocus;
     end;
   end
end;

procedure Ttimecharge.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
var
 time2:string;
begin
   aq_time.Close;
   aq_time.SQL.Clear;
   aq_time.SQL.Add('select dbo.fuca(time1) as time1,dbo.fuca(time2)as time2,charge from time order by timeid');
   aq_time.Open;
   aq_time.Last;
   if aq_time.IsEmpty then
     begin
     messagebox(handle,'未设置完一天的分段时间,请设置完成退出'+#10+'分段结束时间为23:59','系统提示',mb_ok+mb_iconinformation) ;
     Canclose:=false;
     end
   else
   begin
   time2:=string(aq_time.FieldValues['time2']);
   if time2<>'23:59'then
     begin
       canclose:=false;
       messagebox(handle,'未设置完一天的分段时间,请设置完成退出'+#10+'分段结束时间为23:59','系统提示',mb_ok+mb_iconinformation);
     end;
     end;
end;

procedure Ttimecharge.FormCanResize(Sender: TObject; var NewWidth,
  NewHeight: Integer; var Resize: Boolean);
begin
   resize:=false;
end;

end.

⌨️ 快捷键说明

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