?? 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 + -