📄 ulott3d.~pas
字号:
Code2_2:Shortint ;
Code2_3:Shortint ;
Code2_4:Shortint ;
Code3_1:Shortint ;
Code3_2:Shortint ;
Code3_3:Shortint ;
Code3_4:Shortint ;
Count:integer;
end;
TCompages444CodeList=record
OnlgFlag:boolean; //号码是否唯一
Compages444CodeList:array[0..cnCompages444CodeMax-1] of TCompages444CodeNode;
end;
///******************************//
//组3组合列表,不考虑哪个是重号
TZH3CodeTypeNoNode=record
Code1:shortint;
Code2:shortint;
Count:integer;
end;
TZH3CodeTypeNoList=record
ZH3CodeTypeNoList:array[0..cnZH3CodeTypeNoMax-1] of TZH3CodeTypeNoNode;
end;
//////////////////////////////////////////////////////////////////////////////////////////
TForm3D = class(TForm)
ControlBar3D: TControlBar;
PanelColor: TPanel;
ColorDialog: TColorDialog;
ButtonColor: TButton;
ButtonStat: TButton;
StatusBar1: TStatusBar;
ZcPersistGrid: TZcPersistGrid;
ButtonGetCode: TButton;
ButtonCopy: TButton;
PanelInput: TPanel;
ButtonQuit: TButton;
MainMenu: TMainMenu;
File3D: TMenuItem;
File3D_Stat: TMenuItem;
File3D_Quit: TMenuItem;
Menu_Param: TMenuItem;
Menu_DisplaySet: TMenuItem;
ButtonSelect: TButton;
procedure ButtonColorClick(Sender: TObject);
procedure ButtonStatClick(Sender: TObject);
procedure ButtonGetCodeClick(Sender: TObject);
procedure ButtonCopyClick(Sender: TObject);
procedure ButtonQuitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ZcPersistGridMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ButtonSelectClick(Sender: TObject);
private
{ Private declarations }
public
procedure GetCodeFromFile; //从文件取号码
procedure SetInitParam; //设置初始化参数
procedure DisplayHeadLine; //显示标题
procedure DisplayHeadLineRepaint(pIdx:integer); //重新显示标题
procedure SetCellValue(pCol:integer;pRow:integer;pValue:string);//设置单元格值
procedure SetBackColor(pCol:integer;pRow:integer;pBkColor:TColor); //设置单元格背景色
function GetOddEvenCount(pCode1:integer;pCode2:integer;pCode3:integer):integer; //判定奇偶个数(奇数个数)
function GetBigSmallCount(pCode1:integer;pCode2:integer;pCode3:integer):integer; //判定大小个数(大的个数)
function GetCodeCount(pCode1:integer;pCode2:integer;pCode3:integer):integer; //判定号码个数
function GetShapeIndex(pCode1:integer;pCode2:integer;pCode3:integer):integer; //取得形状ID
function GetLinkCodeCount(pCode1:integer;pCode2:integer;pCode3:integer):integer; //取得连号个数
function GetTreasureCount(pCode1:integer;pCode2:integer;pCode3:integer):integer; //取得开宝个数
function GetBrotherCount(pCode1:integer;pCode2:integer;pCode3:integer;pType:string):integer; //取得两个数
function GetPreDisplayFlag(pCode1:integer;pCode2:integer;pCode3:integer;pCurRow:integer):integer; //该号码以前是否出现过
function GetPreNDisplayFlag(pCode1:integer;pCode2:integer;pCode3:integer;pCurRow:integer):integer; //该号码以前是否出现过
procedure GetCheckSelect(var pCellArray:TCellArray;pMaxCol:integer;pMaxRow:integer); //根据在选号取设定的参数进行验证排列
procedure GetCheckSelectZH6(var pCellArray:TCellArray;pMaxCol:integer;pMaxRow:integer); //根据在选号取设定的参数进行验证组6
procedure Compage3CodeHeadLine; //3个号码组合标题分析
function GetCompage3CodeIdx(pCode1:integer;pCode2:integer;pCode3:integer):integer; //取得该号码在3个号码组合中的索引
procedure Compage4CodeHeadLine; //4个号码组合标题分析
procedure SetCompage4CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer); //设置该号码在4个号码组合中的标志
procedure Compage5CodeHeadLine; //5个号码组合标题分析
procedure SetCompage5CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer); //设置该号码在5个号码组合中的标志
procedure Compage6CodeHeadLine; //6个号码组合标题分析
procedure SetCompage6CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer); //设置该号码在6个号码组合中的标志
procedure Compage7CodeHeadLine; //7个号码组合标题分析
procedure SetCompage7CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer); //设置该号码在7个号码组合中的标志
procedure Compage8CodeHeadLine; //8个号码组合标题分析
procedure SetCompage8CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer); //设置该号码在8个号码组合中的标志
procedure Compage222CodeHeadLine; //222个号码组合标题分析
procedure SetCompage222CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer); //设置该号码在222个号码组合中的标志
procedure Compage333CodeHeadLine; //333个号码组合标题分析
procedure SetCompage333CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer); //设置该号码在333个号码组合中的标志
procedure Compage444CodeHeadLine; //444个号码组合标题分析
procedure SetCompage444CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer); //设置该号码在444个号码组合中的标志
function GetPreDispNCurDispCellArrayFlag(pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer):integer; //设置该号码以前出现>=N次,本次再出现的标志
function GetCompages3BeforeNFlag(pCode1:integer;pCode2:integer;pCode3:integer):integer; // 组合3排在前N个的组合出现情况
function GetNCompagesFlag(pCode1:integer;pCode2:integer;pCode3:integer):integer; // 多种组合方式
procedure Brother2TopHeadLine; //两个号码在不同位置出现排名
procedure SetBrother2TopCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer); //两个号码在不同位置出现排名
//***************************//
//组3,出现情况
function GetIsZH3Flag(pCode1:integer;pCode2:integer;pCode3:integer):integer; //判定次号码是否组3,1是,-1不是
function GetZH3In45Flag(pCode1:integer;pCode2:integer;pCode3:integer):integer; //判定组合3在45个组合中位置,-1没有发现
procedure ZH3Select2HeadLine; //组合3,10个取2个组合45个,从出现次数大到小排列
function GetZH3In45SelectPreNFlag(pCode1:integer;pCode2:integer;pCode3:integer):integer; //组合3中45个组合取前N个出现情况
procedure InitCellArray(var pCellArray:TCellArray;pMaxCol:integer;pMaxRow:integer); //初始化二维数组
procedure Statistic_Merge_Display(pCellArray:TCellArray;pBeginColIdx:integer;pBeginRowIdx:integer;pMaxCol:integer;pMaxRow:integer;pHeadLineIdx:integer); //统计结果和汇总结果显示
procedure Statistic_Merge_Main; //分析过程
end;
var
Form3D: TForm3D;
/////////////////////////////////////////////////
//全局变量
gl_CodeList:TCodeList; //号码列表
gl_HeadLineList:THeadLineList; //标题列表
gl_HeadLineGridStartCol:integer; //标题在表格中开始列
gl_HeadLIneGridStartRow:integer; //标题在表格中开始行
gl_InfoStartCol:integer; //分析内容开始列
gl_InfoFirstStartRow:integer; //分析内容第一部分开始行
gl_InfoSecondStartRow:integer; //分析内容第二部分开始行
gl_BackColorList:TBackColorList; //背景颜色列表
gl_Compages3CodeList:TCompages3CodeList; //3个号码组合列表
gl_Compages4CodeList:TCompages4CodeList; //4个号码组合列表
gl_Compages5CodeList:TCompages5CodeList; //5个号码组合列表
gl_Compages6CodeList:TCompages6CodeList; //6个号码组合列表
gl_Compages7CodeList:TCompages7CodeList; //7个号码组合列表
gl_Compages8CodeList:TCompages8CodeList; //8个号码组合列表
gl_Compages222CodeList:TCompages222CodeList; //222个号码组合列表
gl_Compages333CodeList:TCompages333CodeList; //333个号码组合列表
gl_Compages444CodeList:TCompages444CodeList; //444个号码组合列表
gl_NodeCodeTable222:array[0..cnMaxZH222] of TCompages222CodeNode; //222组合列表
gl_NodeCodeTable333:array[0..cnMaxZH333] of TCompages333CodeNode; //333组合列表
gl_NodeCodeTable444:array[0..cnMaxZH444] of TCompages444CodeNode; //444组合列表
gl_Brother2TopList:array[0..cnBrother2TopMax] of TBrother2TopNode; //两个号码在不同位置出现排名
//************************************************//
//组合3,类型列表
gl_ZH3CodeTypeNoList:TZH3CodeTypeNoList; //组合3中45个组合列表(不考虑重号)
implementation
uses uGetCode;
{$R *.dfm}
////////////////////////////////////////////////////////////////////////////////////////////////////
//////
////// 绘制表头
//////
////////////////////////////////////////////////////////////////////////////////////////////////////
//从文件取号码
procedure TForm3D.GetCodeFromFile;
var
CodeFile:TextFile;
sCode:string;
begin
AssignFile(CodeFile,'Code.txt');
Reset(CodeFile);
try
gl_CodeList.CurCodeCount:=0;
while not Eof(CodeFile) do
begin
Readln(CodeFile,sCode);
if length(sCode)>=11 then
begin
gl_CodeList.CodeList[gl_CodeList.CurCodeCount].CodeDateNumber:=Copy(sCode,1,7);
gl_CodeList.CodeList[gl_CodeList.CurCodeCount].Code1:=StrToInt(Copy(sCode,9,1));
gl_CodeList.CodeList[gl_CodeList.CurCodeCount].Code2:=StrToInt(Copy(sCode,10,1));
gl_CodeList.CodeList[gl_CodeList.CurCodeCount].Code3:=StrToInt(Copy(sCode,11,1));
gl_CodeList.CurCodeCount:=gl_CodeList.CurCodeCount+1; //记录数
end;
end;
finally
CloseFile(CodeFile);
end;
end;
//设置初始化参数
procedure TForm3D.SetInitParam;
var
i,j,k:integer;
Rect:TRect;
Ini: TIniFile;
vCodeZHOnly_3Code:boolean;
vCodeZHOnly_4Code:boolean;
vCodeZHOnly_5Code:boolean;
vCodeZHOnly_6Code:boolean;
vCodeZHOnly_7Code:boolean;
vCodeZHOnly_8Code:boolean;
vCodeZHOnly_222Code:boolean;
vCodeZHOnly_333Code:boolean;
vCodePreNDispCurDisp:boolean;
begin
Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) );
try
vCodeZHOnly_3Code:=Ini.ReadBool( 'CodeZHOnly', '3CodeOnly', true);
vCodeZHOnly_4Code:=Ini.ReadBool( 'CodeZHOnly', '4CodeOnly', true);
vCodeZHOnly_5Code:=Ini.ReadBool( 'CodeZHOnly', '5CodeOnly', true);
vCodeZHOnly_6Code:=Ini.ReadBool( 'CodeZHOnly', '6CodeOnly', true);
vCodeZHOnly_7Code:=Ini.ReadBool( 'CodeZHOnly', '7CodeOnly', true);
vCodeZHOnly_8Code:=Ini.ReadBool( 'CodeZHOnly', '8CodeOnly', true);
vCodeZHOnly_222Code:=Ini.ReadBool( 'CodeZHOnly', '222CodeOnly', true);
vCodeZHOnly_333Code:=Ini.ReadBool( 'CodeZHOnly', '333CodeOnly', true);
//取开奖号码
GetCodeFromFile;
//设置全局变量值
gl_HeadLineGridStartCol:=1; //标题在表格中开始列
gl_HeadLIneGridStartRow:=1; //标题在表格中开始行
gl_InfoStartCol:=1; //分析内容开始列
gl_InfoFirstStartRow:=3; //分析内容第一部分开始行
//背景颜色
gl_BackColorList.clEndCodeBKColor:=TColor(RGB(177,255,155));
gl_BackColorList.clColColorList[0]:=TColor(RGB(255,255,255));
gl_BackColorList.clColColorList[1]:=TColor(RGB(227,221,255));
gl_BackColorList.clColColorList[2]:=TColor(RGB(200,255,200));
gl_BackColorList.clColColorList[3]:=TColor(RGB(253,217,255));
gl_BackColorList.clSecondHeadLineBKColor:=cl3DLight;
gl_BackColorList.clJunColor:=TColor(RGB(107,245,107));
gl_BackColorList.clJianColor:=TColor(RGB(254,180,194));
gl_BackColorList.clNoDisplayCount:=TColor(RGB(253,235,151));
//根据开奖号,设置参数
gl_InfoSecondStartRow:=gl_CodeList.CurCodeCount+10; //分析内容第二部分开始行
ZcPersistGrid.ColCount:=cnHeadLineMaxCount; //表格列数
ZcPersistGrid.RowCount:=gl_CodeList.CurCodeCount*2; //表格行数
//三个号码分析是,默认三个号码都不同
gl_Compages3CodeList.OnlgFlag:=vCodeZHOnly_3Code;
for i:=0 to cnCompages3CodeMax-1 do
begin
gl_Compages3CodeList.Compages3CodeList[i].Code1:=-1;
gl_Compages3CodeList.Compages3CodeList[i].Code2:=-1;
gl_Compages3CodeList.Compages3CodeList[i].Code3:=-1;
gl_Compages3CodeList.Compages3CodeList[i].Count:=0;
end;
//四个号码分析是,默认四个号码都不同
gl_Compages4CodeList.OnlgFlag:=vCodeZHOnly_4Code;
for i:=0 to cnCompages4CodeMax-1 do
begin
gl_Compages4CodeList.Compages4CodeList[i].Code1:=-1;
gl_Compages4CodeList.Compages4CodeList[i].Code2:=-1;
gl_Compages4CodeList.Compages4CodeList[i].Code3:=-1;
gl_Compages4CodeList.Compages4CodeList[i].Code4:=-1;
gl_Compages4CodeList.Compages4CodeList[i].Count:=0;
end;
//五个号码分析是,默认五个号码都不同
gl_Compages5CodeList.OnlgFlag:=vCodeZHOnly_5Code;
for i:=0 to cnCompages5CodeMax-1 do
begin
gl_Compages5CodeList.Compages5CodeList[i].Code1:=-1;
gl_Compages5CodeList.Compages5CodeList[i].Code2:=-1;
gl_Compages5CodeList.Compages5CodeList[i].Code3:=-1;
gl_Compages5CodeList.Compages5CodeList[i].Code4:=-1;
gl_Compages5CodeList.Compages5CodeList[i].Code5:=-1;
gl_Compages5CodeList.Compages5CodeList[i].Count:=0;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -