unit ussqdj;
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
Tfrmssqdj = 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;
DBNavigator1: TDBNavigator;
ComboBox4: TComboBox;
Label4: TLabel;
Panel5: TPanel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
ComboBox5: TComboBox;
ComboBox6: TComboBox;
Button2: TButton;
ComboBox7: TComboBox;
ComboBox8: TComboBox;
ComboBox9: TComboBox;
ComboBox10: TComboBox;
ComboBox11: TComboBox;
ComboBox12: TComboBox;
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 ComboBox5Change(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
frmssqdj: Tfrmssqdj;
implementation
{$R .dfm}
uses ulottodata;
function Tfrmssqdj.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 Tfrmssqdj.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:=6; //投注类型
r2:=1;
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”.“ssqdj” ‘);
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 Tfrmssqdj.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:=6; //投注类型
rm:=1;
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”.“ssqdj” ‘);
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 Tfrmssqdj.ComboBox10DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin
J:=strtoint(combobox9.Text) ;
Combobox10.items.clear;
for I := 0 to 6-J do
begin
s:=inttostr(I);
combobox10.Items.Add(s);
end;
end;
procedure Tfrmssqdj.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 Tfrmssqdj.ComboBox12DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin
J:=strtoint(combobox11.Text) ;
Combobox12.items.clear;
for I := 0 to 1-J do
begin
s:=inttostr(I);
combobox12.Items.Add(s);
end;
end;
procedure Tfrmssqdj.ComboBox1DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin
Combobox1.items.clear;
for I := 6 to 33 do
begin
s:=inttostr(I);
//if i<10 then s:=‘0’+s;
combobox1.Items.Add(s);
end;
end;
procedure Tfrmssqdj.ComboBox2DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin
Combobox2.items.clear;
for I := 1 to 16 do
begin
s:=inttostr(I);
//if i<10 then s:=‘0’+s;
combobox2.Items.Add(s);
end;
end;
procedure Tfrmssqdj.ComboBox3DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin
Combobox3.items.clear;
for I := 0 to 6 do
begin
s:=inttostr(I);
combobox3.Items.Add(s);
end;
end;
procedure Tfrmssqdj.ComboBox4DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin
Combobox4.items.clear;
for I := 0 to 1 do
begin
s:=inttostr(I);
combobox4.Items.Add(s);
end;
end;
procedure Tfrmssqdj.ComboBox5Change(Sender: TObject);
begin
combobox6.text:=‘0’;
combobox7.Text:=‘20’;
combobox8.Text:=‘7’;
end;
procedure Tfrmssqdj.ComboBox5DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin
Combobox5.items.clear;
for I := 0 to 5 do
begin
s:=inttostr(I);
combobox5.Items.Add(s);
end;
end;
procedure Tfrmssqdj.ComboBox6DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin
Combobox6.items.clear;
for I := 0 to 0 do
begin
s:=inttostr(I);
combobox6.Items.Add(s);
end;
end;
procedure Tfrmssqdj.ComboBox7DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin
J:=strtoint(combobox5.Text) ;
Combobox7.items.clear;
for I := 6-J to 33-J do
begin
s:=inttostr(I);
// if i<10 then s:=‘0’+s;
combobox7.Items.Add(s);
end;
end;
procedure Tfrmssqdj.ComboBox8DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin
J:=strtoint(combobox6.Text) ;
Combobox8.items.clear;
for I := 1-J to 16-J do
begin
s:=inttostr(I);
combobox8.Items.Add(s);
end;
end;
procedure Tfrmssqdj.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 Tfrmssqdj.FormHide(Sender: TObject);
begin
dmlottodata.FDTable6.Close;
end;
procedure Tfrmssqdj.FormShow(Sender: TObject);
begin
dmlottodata.FDTable6.open;
end;
initialization
RegisterClass(Tfrmssqdj);
finalization
UnRegisterClass(Tfrmssqdj);
end.