unit udltdj;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Data.DB, Vcl.Grids,
Vcl.DBGrids, Vcl.DBCtrls, Vcl.StdCtrls, Vcl.ComCtrls;
type
Tfrmdltdj = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
DBGrid1: TDBGrid;
ListBox1: TListBox;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel4: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
Button1: TButton;
Panel5: TPanel;
Label5: TLabel;
ComboBox5: TComboBox;
Label6: TLabel;
ComboBox6: TComboBox;
Button2: TButton;
ComboBox7: TComboBox;
ComboBox8: TComboBox;
Label7: TLabel;
Label8: TLabel;
DBNavigator1: TDBNavigator;
ComboBox4: TComboBox;
Label4: TLabel;
Label9: TLabel;
Label10: TLabel;
ComboBox9: TComboBox;
ComboBox10: TComboBox;
ComboBox11: TComboBox;
ComboBox12: TComboBox;
Label11: TLabel;
Label12: TLabel;
procedure FormShow(Sender: TObject);
procedure FormHide(Sender: TObject);
procedure ComboBox2DropDown(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ComboBox3DropDown(Sender: TObject);
procedure ComboBox5DropDown(Sender: TObject);
procedure ComboBox7DropDown(Sender: TObject);
procedure ComboBox6DropDown(Sender: TObject);
procedure ComboBox8DropDown(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ComboBox1DropDown(Sender: TObject);
procedure ComboBox4DropDown(Sender: TObject);
procedure ComboBox9DropDown(Sender: TObject);
procedure ComboBox10DropDown(Sender: TObject);
procedure ComboBox11DropDown(Sender: TObject);
procedure ComboBox12DropDown(Sender: TObject);
private
function ProcPZCount(n,r:integer):int64;
public
{ Public declarations }
end;
var
frmdltdj: Tfrmdltdj;
implementation
{$R .dfm}
uses ulottodata;
function Tfrmdltdj.ProcPZCount(n,r:integer):int64;
var
I,J:integer;
I0,J0:Int64;
begin
if ((r<0)or(n<0)or(n<r)) then Result:=0 else
if (r=0)or(n=0) then Result:=1 else
begin
I0:=1; J0:=1;
For I:=n downto n-r+1 do
begin
J0:=(n-I+1);
I0:=(II0) div J0;
end;
Result:=I0;
end;
end;
procedure Tfrmdltdj.Button1Click(Sender: TObject);
var
n1,n2,r1,r2,n3,n4:Integer;
sr:string;
t1,t2,t3,t4:Int64;
ct,cc,hct,hcc:Int64;
prize,tprize:double;
sc,s1,s2:string;
begin
listbox1.Items.Clear;
n1:=strtoint(combobox1.Text); //前区选号
n2:=strtoint(combobox2.Text); //后区选号
// sr:=combobox1.Text;
r1:=5; //投注类型
r2:=2;
n3:=strtoint(combobox3.Text); //前区命中
n4:=strtoint(combobox4.Text); //后区命中
t1:=ProcPZCount(n1,r1);
t2:=ProcPZCount(n2,r2);
listbox1.Items.Add(‘投注注数:’+inttostr(t1t2));
listbox1.Items.Add(‘投注金额:’+inttostr(2t1*t2));
dmlottodata.FDQuery4.Close;
dmlottodata.FDQuery4.SQL.Clear;
dmlottodata.FDQuery4.SQL.Add(‘select * from “main”.“dltdj” ‘);
dmlottodata.FDQuery4.SQL.Add(’ where (cc
<=’+inttostr(n3)+‘) and (hcc
<=’+inttostr(n4)+‘)’);
dmlottodata.FDQuery4.Open;
dmlottodata.FDQuery4.First;
tprize:=0;
while not dmlottodata.FDQuery4.Eof do
begin
sc:=dmlottodata.FDQuery4.FieldByName(‘cname’).asstring+‘:’;
ct:=dmlottodata.FDQuery4.FieldByName(‘ct’).asInteger;
cc:=dmlottodata.FDQuery4.FieldByName(‘cc’).asInteger;
hct:=dmlottodata.FDQuery4.FieldByName(‘hct’).asInteger;
hcc:=dmlottodata.FDQuery4.FieldByName(‘hcc’).asInteger;
prize:=dmlottodata.FDQuery4.FieldByName(‘prize’).asfloat;
t3:=ProcPZCount(n3,cc)*ProcPZCount(n1-n3,(r1-cc));
t4:=ProcPZCount(n4,hcc)*ProcPZCount(n2-n4,(r2-hcc));
// t2:= ProcPZCount(n2,cc)*ProcPZCount(n1-n2,(r1-cc));
listbox1.Items.Add(sc+'注数:'+inttostr(t3*t4)+'奖金:'+floattostr(t3*t4*prize));
tprize:=tprize+t3*t4*prize;
dmlottodata.FDQuery4.next;
end;
listbox1.Items.Add(‘总中奖金额:’+floattostr(tprize));
listbox1.Items.Add(‘盈亏金额:’+floattostr(tprize-2t1t2));
end;
procedure Tfrmdltdj.Button2Click(Sender: TObject);
var
n1,n2,n3,n4,rn:Integer;
m1,m2,m3,m4,rm:Integer;
t1,t2,tn,tm:Int64;
ct,cc,hct,hcc:Int64;
prize,tprize:double;
sc,s1,s2:string;
begin
listbox1.Items.Clear;
rn:=5; //投注类型
rm:=2;
n1:=strtoint(combobox5.Text); //前区胆选个数
n2:=strtoint(combobox9.Text); //前区胆命中个数
n3:=strtoint(combobox7.Text); //前区拖选个数
n4:=strtoint(combobox10.Text); //前区拖命中个数
m1:=strtoint(combobox6.Text); //后区胆选个数
m2:=strtoint(combobox11.Text); //后区胆命中个数
m3:=strtoint(combobox8.Text); //后区拖选个数
m4:=strtoint(combobox12.Text); //后区拖命中个数
t1:=ProcPZCount(n3,rn-n1);
t2:=ProcPZCount(m3,rm-m1);
listbox1.Items.Add(‘投注注数:’+inttostr(t1t2));
listbox1.Items.Add(‘投注金额:’+inttostr(2t1*t2));
dmlottodata.FDQuery4.Close;
dmlottodata.FDQuery4.SQL.Clear;
dmlottodata.FDQuery4.SQL.Add(‘select * from “main”.“dltdj” ‘);
dmlottodata.FDQuery4.SQL.Add(’ where (cc
<=’+inttostr(n2+n4)+‘) and (hcc
<=’+inttostr(m2+m4)+‘)’);
dmlottodata.FDQuery4.Open;
dmlottodata.FDQuery4.First;
tprize:=0; tn:=0;tm:=0;
while not dmlottodata.FDQuery4.Eof do
begin
sc:=dmlottodata.FDQuery4.FieldByName(‘cname’).asstring+‘:’;
ct:=dmlottodata.FDQuery4.FieldByName(‘ct’).asInteger;
cc:=dmlottodata.FDQuery4.FieldByName(‘cc’).asInteger;
hct:=dmlottodata.FDQuery4.FieldByName(‘hct’).asInteger;
hcc:=dmlottodata.FDQuery4.FieldByName(‘hcc’).asInteger;
prize:=dmlottodata.FDQuery4.FieldByName('prize').asfloat;
// t2:= ProcPZCount(n2,cc)*ProcPZCount(n4,(r-cc));
if (rn>=cc+n1-n2) and (rm>=hcc+m1-m2) then
begin
tn:=ProcPZCount(n4,cc-n2)*ProcPZCount(n3-n4,rn-cc-n1+n2);
tm:=ProcPZCount(m4,hcc-m2)*ProcPZCount(m3-m4,rm-hcc-m1+m2);
end;
listbox1.Items.Add(sc+'注数:'+inttostr(tn*tm)+'奖金:'+floattostr(tn*tm*prize));
tprize:=tprize+tn*tm*prize;
dmlottodata.FDQuery4.next;
end;
listbox1.Items.Add(‘总中奖金额:’+floattostr(tprize));
listbox1.Items.Add(‘盈亏金额:’+floattostr(tprize-2t1t2));
end;
procedure Tfrmdltdj.ComboBox10DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin
J:=strtoint(combobox9.Text) ;
Combobox10.items.clear;
for I := 0 to 5-J do
begin
s:=inttostr(I);
combobox10.Items.Add(s);
end;
end;
procedure Tfrmdltdj.ComboBox11DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin
J:=strtoint(combobox6.Text) ;
Combobox11.items.clear;
for I := 0 to J do
begin
s:=inttostr(I);
combobox11.Items.Add(s);
end;
end;
procedure Tfrmdltdj.ComboBox12DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin
J:=strtoint(combobox11.Text) ;
Combobox12.items.clear;
for I := 0 to 2-J do
begin
s:=inttostr(I);
combobox12.Items.Add(s);
end;
end;
procedure Tfrmdltdj.ComboBox1DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin
Combobox1.items.clear;
for I := 5 to 35 do
begin
s:=inttostr(I);
//if i<10 then s:=‘0’+s;
combobox1.Items.Add(s);
end;
end;
procedure Tfrmdltdj.ComboBox2DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin
Combobox2.items.clear;
for I := 2 to 12 do
begin
s:=inttostr(I);
//if i<10 then s:=‘0’+s;
combobox2.Items.Add(s);
end;
end;
procedure Tfrmdltdj.ComboBox3DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin
Combobox3.items.clear;
for I := 0 to 5 do
begin
s:=inttostr(I);
combobox3.Items.Add(s);
end;
end;
procedure Tfrmdltdj.ComboBox4DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin
Combobox4.items.clear;
for I := 0 to 2 do
begin
s:=inttostr(I);
combobox4.Items.Add(s);
end;
end;
procedure Tfrmdltdj.ComboBox5DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin
Combobox5.items.clear;
for I := 0 to 4 do
begin
s:=inttostr(I);
combobox5.Items.Add(s);
end;
end;
procedure Tfrmdltdj.ComboBox6DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin
Combobox6.items.clear;
for I := 0 to 1 do
begin
s:=inttostr(I);
combobox6.Items.Add(s);
end;
end;
procedure Tfrmdltdj.ComboBox7DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin
J:=strtoint(combobox5.Text) ;
Combobox7.items.clear;
for I := 5-J to 35-J do
begin
s:=inttostr(I);
// if i<10 then s:=‘0’+s;
combobox7.Items.Add(s);
end;
end;
procedure Tfrmdltdj.ComboBox8DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin
J:=strtoint(combobox6.Text) ;
Combobox8.items.clear;
for I := 2-J to 12-J do
begin
s:=inttostr(I);
combobox8.Items.Add(s);
end;
end;
procedure Tfrmdltdj.ComboBox9DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin
J:=strtoint(combobox5.Text) ;
Combobox9.items.clear;
for I := 0 to J do
begin
s:=inttostr(I);
combobox9.Items.Add(s);
end;
end;
procedure Tfrmdltdj.FormHide(Sender: TObject);
begin
dmlottodata.FDTable5.Close;
end;
procedure Tfrmdltdj.FormShow(Sender: TObject);
begin
dmlottodata.FDTable5.open;
end;
initialization
RegisterClass(Tfrmdltdj);
finalization
UnRegisterClass(Tfrmdltdj);
end.