📄 ulottery.pas
字号:
M_RedMinCount.Text:=IntToStr(I+1)+' '+M_RedMinCount.Text
else M_RedMinCount.Text:='0'+IntToStr(I+1)+' '+M_RedMinCount.Text
end;
end;
M_FenXiJieGuo.Lines.Add('');
M_FenXiJieGuo.Lines.Add('-----------蓝球出现次数最多和最少的号码-----------');
MaxCountBall:=BLueBallInfo[0].BallCount;
MInCountBall:=BLueBallInfo[0].BallCount;
for I:=1 to 15 do
begin
if MaxCountBall< BLueBallInfo[I].BallCount then MaxCountBall:= BLueBallInfo[I].BallCount;
if MInCountBall> BLueBallInfo[I].BallCount then MInCountBall:= BLueBallInfo[I].BallCount;
end;
for I:=0 to 15 do
begin
if MaxCountBall= BLueBallInfo[I].BallCount then
begin
M_FenXiJieGuo.Lines.Add('蓝球出现次数最多的号码是:'+IntToStr(I+1)+' 出现的次数是:'+IntToStr(MaxCountBall));
M_BlueMaxCount.Text:=IntToStr(I+1)+' '+M_BlueMaxCount.Text;
end;
end;
for I:=0 to 15 do
begin
if MInCountBall= BLueBallInfo[I].BallCount then
begin
M_FenXiJieGuo.Lines.Add('蓝球出现次数最少的号码是:'+IntToStr(I+1)+' 出现的次数是:'+IntToStr(MInCountBall));
M_BlueMinCount.Text:=IntToStr(I+1)+' '+M_BlueMinCount.Text;
end;
end;
//号码平均合值 AveHeZhi,AveJianJu:Integer;
M_FenXiJieGuo.Lines.Add('');
M_FenXiJieGuo.Lines.Add('-----------号码平均合值-----------');
AveHeZhi:=0;
for I:=0 to L_XiangMuTu.Items.Count-1 do
begin
if L_XiangMuTu.Items[I].SubItems[7]<>'' then
AveHeZhi:=AveHeZhi+StrToInt(L_XiangMuTu.Items[I].SubItems[7]);
end;
M_FenXiJieGuo.Lines.Add('号码合值的平均值是:'+IntToStr(Round(AveHeZhi/L_XiangMuTu.Items.Count)));
E_HeZhiAve.Text:=IntToStr(Round(AveHeZhi/L_XiangMuTu.Items.Count));
//号码平均间距
M_FenXiJieGuo.Lines.Add('');
M_FenXiJieGuo.Lines.Add('-----------号码平均间距-----------');
AveJianJu:=0;
for I:=0 to L_XiangMuTu.Items.Count-1 do
begin
if L_XiangMuTu.Items[I].SubItems[8]<>'' then
AveJianJu:=AveJianJu+StrToInt(L_XiangMuTu.Items[I].SubItems[8]);
end;
M_FenXiJieGuo.Lines.Add('号码间距的平均值是:'+IntToStr(Round(AveJianJu/L_XiangMuTu.Items.Count)));
E_JianJuAve.Text:=IntToStr(Round(AveJianJu/L_XiangMuTu.Items.Count));
//奇数的平均值 AveJiShu,AveOuShu
M_FenXiJieGuo.Lines.Add('');
M_FenXiJieGuo.Lines.Add('-----------奇数的平均值-----------');
AveJiShu:=0;
for I:=0 to L_XiangMuTu.Items.Count-1 do
begin
if L_XiangMuTu.Items[I].SubItems[6]<>'' then
AveJiShu:=AveJiShu+StrToInt(L_XiangMuTu.Items[I].SubItems[6]);
end;
M_FenXiJieGuo.Lines.Add('奇数的平均值是:'+FloatToStr(AveJiShu/L_XiangMuTu.Items.Count));
E_JiShuAve.Text:=FloatToStr(AveJiShu/L_XiangMuTu.Items.Count);
//偶数的平均值
M_FenXiJieGuo.Lines.Add('');
M_FenXiJieGuo.Lines.Add('-----------偶数的平均值-----------');
AveOuShu:=0;
for I:=0 to L_XiangMuTu.Items.Count-1 do
begin
if L_XiangMuTu.Items[I].SubItems[5]<>'' then
AveOuShu:=AveOuShu+StrToInt(L_XiangMuTu.Items[I].SubItems[5]);
end;
M_FenXiJieGuo.Lines.Add('偶数的平均值是:'+FloatToStr(AveOuShu/L_XiangMuTu.Items.Count));
E_OuShuAve.Text:=FloatToStr(AveOuShu/L_XiangMuTu.Items.Count);
end;
end;
//算彩票号码
procedure TLotteryFrm.GetNewLotteryID;
var
BallIDIsUsed:array[0..32] of Boolean;
I,J:Integer;
ResultStr:String;
SubStr:String;
RedLottery1,RedLottery2,RedLottery3,RedLottery4,RedLottery5,RedLottery6:Byte;
OneLottery:Integer;
MaxBall:Boolean;
begin
for I:=0 to 32 do
BallIDIsUsed[I]:=False;
ResultStr:='';
if C_BallColor.Text='红球' then
begin
J:=0;
for I:=1 to 33 do
begin
if I<=9 then
SubStr:='0'+IntToStr(I)
else
SubStr:=IntToStr(I);
if Pos(SubStr,M_RedMaxCount.Text)>0 then
begin
J:=J+1;
case j of
1:RedLottery1:=I;
2:RedLottery2:=I;
3:RedLottery3:=I;
4:RedLottery4:=I;
5:RedLottery5:=I;
6:RedLottery6:=I;
end;
end;
if Pos(SubStr,M_RedMinCount.Text)>0 then
begin
J:=J+1;
case j of
1:RedLottery1:=I;
2:RedLottery2:=I;
3:RedLottery3:=I;
4:RedLottery4:=I;
5:RedLottery5:=I;
6:RedLottery6:=I;
end;
end;
end;
MaxBall:=false;
OneLottery:= GetMaxID(RedLottery1,
RedLottery2,
RedLottery3,
RedLottery4,
RedLottery5,
RedLottery6)-StrToInt(E_JianJuAve.Text);
if OneLottery>0 then
begin
if OneLottery>9 then
begin
if Pos(IntToStr(OneLottery),M_LastThreeID.Text)<=0 then
begin
if Round((RedLottery1+RedLottery2+RedLottery3+OneLottery)/4)>StrToInt(E_JianJuAve.Text) then
begin
J:=J+1;
case j of
1:RedLottery1:=OneLottery;
2:RedLottery2:=OneLottery;
3:RedLottery3:=OneLottery;
4:RedLottery4:=OneLottery;
5:RedLottery5:=OneLottery;
6:RedLottery6:=OneLottery;
end;
MaxBall:=True;
end;
end;
end else
begin
if Pos('0'+IntToStr(OneLottery),M_LastThreeID.Text)<=0 then
begin
if Round((RedLottery1+RedLottery2+RedLottery3+OneLottery)/4)>StrToInt(E_JianJuAve.Text) then
begin
J:=J+1;
case j of
1:RedLottery1:=OneLottery;
2:RedLottery2:=OneLottery;
3:RedLottery3:=OneLottery;
4:RedLottery4:=OneLottery;
5:RedLottery5:=OneLottery;
6:RedLottery6:=OneLottery;
end;
MaxBall:=True;
end;
end;
end;
end;
if MaxBall=False then
begin
OneLottery:=GetMinID(RedLottery1,
RedLottery2,
RedLottery3,
RedLottery4,
RedLottery5,
RedLottery6)+StrToInt(E_JianJuAve.Text);
J:=J+1;
case j of
1:RedLottery1:=OneLottery;
2:RedLottery2:=OneLottery;
3:RedLottery3:=OneLottery;
4:RedLottery4:=OneLottery;
5:RedLottery5:=OneLottery;
6:RedLottery6:=OneLottery;
end;
end;
if Round((RedLottery1+RedLottery2+RedLottery3+RedLottery4)/4)>StrToInt(E_JianJuAve.Text) then
begin
for I:=RedLottery1 to StrToInt(E_JianJuAve.Text) do
begin
if I<=9 then
SubStr:='0'+IntToStr(I)
else
SubStr:=IntToStr(I);
if (Pos(SubStr,M_LastThreeID.Text)<=0)
and (I<>RedLottery1)
and (I<>RedLottery2)
and (I<>RedLottery3)
and (I<>RedLottery4) then
begin
J:=J+1;
case j of
1:RedLottery1:=I;
2:RedLottery2:=I;
3:RedLottery3:=I;
4:RedLottery4:=I;
5:RedLottery5:=I;
6:RedLottery6:=I;
end;
break;
end;
end;
end else
begin
for I:= StrToInt(E_JianJuAve.Text) to RedLottery4 do
begin
if I<=9 then
SubStr:='0'+IntToStr(I)
else
SubStr:=IntToStr(I);
if (Pos(SubStr,M_LastThreeID.Text)<=0)
and (I<>RedLottery1)
and (I<>RedLottery2)
and (I<>RedLottery3)
and (I<>RedLottery4) then
begin
J:=J+1;
case j of
1:RedLottery1:=I;
2:RedLottery2:=I;
3:RedLottery3:=I;
4:RedLottery4:=I;
5:RedLottery5:=I;
6:RedLottery6:=I;
end;
break;
end;
end;
end;
OneLottery:=0;
while OneLottery= 0 do
begin
OneLottery:=random(33);
if (OneLottery<>0)
and (OneLottery<>RedLottery1)
and (OneLottery<>RedLottery2)
and (OneLottery<>RedLottery3)
and (OneLottery<>RedLottery4)
and (OneLottery<>RedLottery4) then
begin
end else
begin
OneLottery:=0;
end;
end;
J:=J+1;
case j of
1:RedLottery1:=OneLottery;
2:RedLottery2:=OneLottery;
3:RedLottery3:=OneLottery;
4:RedLottery4:=OneLottery;
5:RedLottery5:=OneLottery;
6:RedLottery6:=OneLottery;
end;
E_NewID.Text:=IntToStr(RedLottery1)+' '+
IntToStr(RedLottery2)+' '+
IntToStr(RedLottery3)+' '+
IntToStr(RedLottery4)+' '+
IntToStr(RedLottery5)+' '+
IntToStr(RedLottery6)+' ';
end else
begin
end;
end;
procedure TLotteryFrm.C_BallColorChange(Sender: TObject);
begin
C_BallID.Clear;
//常规走势
ChangGuiZouShi;
//分布图
FenBuTu;
//项目图
XiangMuTu;
//分析数据
FenXiShuJu;
//得到号码
GetNewLotteryID;
end;
procedure TLotteryFrm.C_BallIDChange(Sender: TObject);
var
OneBallAdoQuery : TAdoQuery;
XMLStr : String;
I : Integer;
begin
if (Sender as TComboBox).Text<>'' then
begin
OneBallAdoQuery:=TAdoQuery.Create(Nil);
try
OneBallAdoQuery.Connection:=ADOConnection1;
OneBallAdoQuery.Close;
OneBallAdoQuery.SQL.Text:='select * From Lottery order by LotteryID Desc';
OneBallAdoQuery.Open;
for I:=0 to OneBallAdoQuery.RecordCount-1 do
begin
if C_BallColor.Text='红色' then
begin
if (OneBallAdoQuery.FieldByname('RedLottery1').AsString=C_BallID.Text) or
(OneBallAdoQuery.FieldByname('RedLottery2').AsString=C_BallID.Text) or
(OneBallAdoQuery.FieldByname('RedLottery3').AsString=C_BallID.Text) or
(OneBallAdoQuery.FieldByname('RedLottery4').AsString=C_BallID.Text) or
(OneBallAdoQuery.FieldByname('RedLottery5').AsString=C_BallID.Text) or
(OneBallAdoQuery.FieldByname('RedLottery6').AsString=C_BallID.Text) then
begin
XMLStr:=XMLStr
+'<ROW'
+' X="'+OneBallAdoQuery.FieldByname('LotteryID').AsString
+'" '
+' Y="'+'1'
+'" '
+'/>';
end else
begin
XMLStr:=XMLStr
+'<ROW'
+' X="'+OneBallAdoQuery.FieldByname('LotteryID').AsString
+'" '
+' Y="'+'0'
+'" '
+'/>';
end;
end else
begin
if (OneBallAdoQuery.FieldByname('BlueLottery').AsString=C_BallID.Text) then
begin
XMLStr:=XMLStr
+'<ROW'
+' X="'+OneBallAdoQuery.FieldByname('LotteryID').AsString
+'" '
+' Y="'+'1'
+'" '
+'/>';
end else
begin
XMLStr:=XMLStr
+'<ROW'
+' X="'+OneBallAdoQuery.FieldByname('LotteryID').AsString
+'" '
+' Y="'+'0'
+'" '
+'/>';
end;
end;
OneBallAdoQuery.Next;
end;
XMLStr:=GetXMLHead+XMLStr+GetXMLEnd;
SetSeriesData;
ClientDataSet.XMLData:=XMLStr;
ClientDataSet.Open;
finally
FreeAndNil(OneBallAdoQuery);
end;
end;
end;
procedure TLotteryFrm.N2Click(Sender: TObject);
begin
Close;
end;
procedure TLotteryFrm.N4Click(Sender: TObject);
begin
MessageBox(Handle,'只要将数据导入数据库,就可以分析!','帮助?',MB_OK);
end;
procedure TLotteryFrm.N5Click(Sender: TObject);
begin
MessageBox(Handle,'这是双色球彩票分析器!'+#13#10
+'版本:1.0'+#13#10
+'有问题请联系:sbzldlb@163.com'+#13#10
+'欢迎专业人事指点!'+#13#10,
'关于!',MB_OK);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -