📄 tcxz.pas
字号:
unit tcxz;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, CheckLst, Grids, DBGrids, DBTables, DB,
ExtCtrls;
type
TtcxzForm = class(TForm)
BitBtn2: TBitBtn;
Label3: TLabel;
DBGrid2: TDBGrid;
Query1: TQuery;
DataSource1: TDataSource;
Edit1: TEdit;
Label1: TLabel;
Edit2: TEdit;
BitBtn1: TBitBtn;
BitBtn3: TBitBtn;
mxlsQ: TQuery;
UpdateSQL3: TUpdateSQL;
DataSource2: TDataSource;
Timer1: TTimer;
Query1bh: TStringField;
Query1lbbm: TStringField;
Query1mc: TStringField;
Query1ywmc: TStringField;
Query1gg: TStringField;
Query1dj: TFloatField;
Query1tcbz: TBooleanField;
Query1zt: TBooleanField;
Query1sfkj: TBooleanField;
Query1zkdl: TBooleanField;
Query1zkl: TIntegerField;
Query1fwfdl: TBooleanField;
Query1fwfl: TIntegerField;
Query1shuilu: TIntegerField;
mxlsQID: TIntegerField;
mxlsQdjh: TIntegerField;
mxlsQth: TStringField;
mxlsQyhh: TStringField;
mxlsQbc: TStringField;
mxlsQtwbh: TStringField;
mxlsQrq: TDateTimeField;
mxlsQlb: TStringField;
mxlsQbh: TStringField;
mxlsQmc: TStringField;
mxlsQgg: TStringField;
mxlsQdj: TFloatField;
mxlsQsl: TFloatField;
mxlsQje: TFloatField;
mxlsQfkbz: TBooleanField;
mxlsQzfbz: TBooleanField;
mxlsQzcbz: TStringField;
mxlsQzkl: TIntegerField;
mxlsQzke: TFloatField;
mxlsQfwfl: TIntegerField;
mxlsQfwfe: TFloatField;
mxlsQshuilv: TIntegerField;
mxlsQse: TFloatField;
mxlsQzsbz: TBooleanField;
mxlsQwmbz: TBooleanField;
mxlsQszdd: TStringField;
mxlsQcfdy: TBooleanField;
mxlsQcfdyjhm: TStringField;
mxlsQccjdyjhm: TStringField;
procedure DBGridClick(Sender: TObject);
procedure DBGrid2DblClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Query1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
procedure Timer1Timer(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
btlb: array[1..42] of Tbitbtn;
cdbh: array[1..42] of string;
{ Private declarations }
public
{ Public declarations }
end;
var
tcxzForm: TtcxzForm;
lbbm,pcbh:string;
djh:integer;
maxsl,ssll:real;
implementation
uses qtmain;
{$R *.dfm}
procedure TtcxzForm.DBGridClick(Sender: TObject);
var st:string;
rrow:integer;
begin
if activecontrol.ClassType=Tbitbtn then
if copy(activecontrol.Name,1,3)<>'bt_' then exit;
st:=trim(copy(activecontrol.Name,4,6));
rrow:=strtoint(copy(st,1,2));
if trim(btlb[rrow].Caption)='' then exit;
timer1.Enabled:=false;
if mxlsq.Locate('bh',cdbh[rrow],[]) then
begin
mxlsq.Edit;
mxlsq.FieldByName('sl').AsInteger:=mxlsq.FieldByName('sl').AsInteger+1;
mxlsq.Post;
end
else
begin
mxlsq.Append;
mxlsqrq.AsDateTime:=date+time;
mxlsqdjh.AsInteger:=djh;
query1.Locate('bh',cdbh[rrow],[]);
mxlsqlb.AsString:=query1lbbm.AsString;
mxlsqbh.AsString:=query1bh.AsString;
mxlsqmc.AsString:=query1mc.AsString;
mxlsqdj.AsFloat:=query1dj.AsCurrency;
mxlsqgg.AsString:=query1gg.AsString;
mxlsqzcbz.AsString:=qtform.lsQbh.AsString;
mxlsqcfdyjhm.AsString:=qtform.lsQcfdyjhm.AsString;
mxlsqccjdyjhm.AsString:=qtform.lsQccjdyjhm.AsString;
mxlsqsl.AsInteger:=1;
mxlsqje.AsCurrency:=0;
mxlsqfkbz.AsBoolean:=false;
mxlsqzfbz.AsBoolean:=false;
mxlsq.Post;
end;
timer1.Enabled:=true;
end;
procedure TtcxzForm.DBGrid2DblClick(Sender: TObject);
begin
if not mxlsq.IsEmpty then mxlsq.Delete;
end;
procedure TtcxzForm.FormActivate(Sender: TObject);
var i:integer;
begin
edit1.Text:=floattostr(maxsl);
edit2.Text:=pcbh;
for i:=1 to 42 do
begin
cdbh[i]:='';
btlb[i].Caption:='';
end;
query1.Open;
application.ProcessMessages;
query1.Filtered:=true;
i:=1;
query1.First;
while not query1.Eof do
begin
cdbh[i]:=query1bh.asstring;
btlb[i].Caption:=query1mc.AsString;
i:=i+1;
query1.Next;
end;
timer1.Enabled:=true;
end;
procedure TtcxzForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
timer1.Enabled:=false;
query1.Filtered:=false;
query1.Close;
end;
procedure TtcxzForm.Query1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
accept:=pos(dataset.FieldByName('lbbm').AsString,pcbh)>0;
end;
procedure TtcxzForm.Timer1Timer(Sender: TObject);
var i:integer;
begin
i:=0;
mxlsq.First;
while not mxlsq.Eof do
begin
i:=i+mxlsqsl.AsInteger;
mxlsq.Next;
end;
if i=strtoint(edit1.Text) then bitbtn1.Enabled:=true
else bitbtn1.Enabled:=false;
end;
procedure TtcxzForm.BitBtn3Click(Sender: TObject);
begin
mxlsq.First;
while not mxlsq.Eof do mxlsq.Delete;
end;
procedure TtcxzForm.FormCreate(Sender: TObject);
var j,r,c:integer;
begin
for j:=1 to 42 do
begin
btlb[j]:=Tbitbtn.Create(Self);
btlb[j].Parent:=tcxzForm;
btlb[j].Height:=40;
btlb[j].Width:=80;
btlb[j].Spacing:=4;
if (j>=1) and (j<=6) then r:=1;
if (j>=7) and (j<=12) then r:=2;
if (j>=13) and (j<=18) then r:=3;
if (j>=19) and (j<=24) then r:=4;
if (j>=25) and (j<=30) then r:=5;
if (j>=31) and (j<=36) then r:=6;
if (j>=37) and (j<=42) then r:=7;
c:=j mod 6;
if c=0 then c:=6;
btlb[j].left:=4+(c-1)*82;
btlb[j].Top:=56+(r-1)*42;
btlb[j].Name:='bt_'+inttostr(j);
btlb[j].Visible:=true;
btlb[j].BringToFront;
btlb[j].Caption:='';
btlb[j].OnClick:=DBGridClick;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -