⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form_techanalysel.pas

📁 双色球分析软件
💻 PAS
📖 第 1 页 / 共 5 页
字号:
      end;////for i
      /////给偏度>8的添加颜色////////////////////////
      for i:=3 to grid1.RowCount-1 do
      begin
          if strToint(grid1.cells[10,i].foretext)>=8 then
          begin
             grid1.Cells[10,i].Color:=rgb(255,0,0);
          end;///if
      end;/////
      /////给散度>8的添加颜色////////////////////////
      for i:=3 to grid1.RowCount-1 do
      begin
          if strToint(grid1.cells[11,i].foretext)>=8 then
          begin
             grid1.Cells[11,i].Color:=rgb(0,255,0);
          end;///if
      end;/////
      /////给AC>8的添加颜色////////////////////////
      for i:=3 to grid1.RowCount-1 do
      begin
          if strToint(grid1.cells[12,i].foretext)>=8 then
          begin
             grid1.Cells[12,i].Color:=rgb(255,128,0);
          end;///if
      end;/////
      /////给AC>8的添加颜色////////////////////////
      for i:=3 to grid1.RowCount-1 do
      begin
          if strToint(grid1.cells[13,i].foretext)>0 then
          begin
             grid1.Cells[13,i].Color:=rgb(255,128,255);
          end;///if
      end;/////
      ///////存储最近28期的偏度、散度、AC值//////////////
       for i:=grid1.RowCount-28 to grid1.RowCount-1 do
       begin

           _DrawPD[i-(grid1.RowCount-29)]:=strToInt(grid1.cells[10,i].foretext);
           _DrawSD[i-(grid1.RowCount-29)]:=strToInt(grid1.cells[11,i].foretext);
           _DrawAC[i-(grid1.RowCount-29)]:=strToInt(grid1.cells[12,i].foretext);
       end;///for i
        _DrawPD[1]:=2;
        _DrawSD[1]:=2;
        _DrawAC[1]:=2;
      ///////////////////////////////////////////////
      grid1.Refresh;
///////////////////////////////////////////////////

end;

procedure TForm_TechAnalyse.TabCtrlDrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
      TabTitle:Array[0..50] of string;
begin
      TabTitle[0]:='数据偏散度';
      TabTitle[1]:='偏散度曲线';
      TabTitle[2]:='分球偏度曲线';
      TabTitle[3]:='计算法选号';
      TabTitle[4]:='偏散度余数图';
      TabTitle[5]:='偏度分布图';
      TabTitle[6]:='散度分布图';
      TabTitle[7]:='AC值分布图';
      //TabTitle[4]:='工龄段查询';
      with Control.Canvas   do
      begin
          if active then
          begin
             Font.Color:=clRed;
             Font.Name:='宋体';
             Font.Size:=10;
          end
          else
             begin
                Font.Style:=[];
                Font.Name:='宋体';
                Font.Size:=10;
             end;
          TextRect(Rect,Rect.Left+20,Rect.Top+3,TabTitle[TabIndex]);////输出标题
          ImageList1.Draw(Control.Canvas,Rect.Left+2,Rect.Top+2,TabIndex);///画图标
      end;///with
end;

procedure TForm_TechAnalyse.TabCtrlChange(Sender: TObject);
     Function GetMinValue(x:integer;A:Array of integer):string;
     var
        i:integer;
        y:integer;
        _Value:TStringList;
     begin
        _Value:=TStringList.Create;
        _Value.Clear;
        //showmessage(inttostr(A[1]));
        for i:=0 to 5 do
        begin
            if abs((x-a[i]))<10 then
            begin
                _Value.Add('0'+trim(Inttostr(abs(x-a[i]))));
            end
            else
                _Value.Add(trim(Inttostr(abs(x-a[i]))));
        end;
        _Value.Sort;
        //showmessage(_Value.text);
        result:=inttostr(x)+':'+trim(_Value[0]);
     end;///function
var
     PD_Data:Array[1..30] of integer; ////记录偏度数据
     SD_Data:Array[1..30] of integer; ////记录散度数据
     AC_Data:Array[1..30] of integer; ////记录AC值数据
     QH_Data:Array[1..30] of string; /////记录每一期的期号
     i,j,m:integer;
     R_CpData1:Array[1..6,0..100] of integer;/////记录彩票数据
     R_CPID:Array[0..100] of string;////记录彩票的期号
     FieldIndex:string;////记录字段索引
     CurrentPath:string;////记录当前数据库路径
     strSql:string; /////记录SQL语句
     sBeginID:string;////取得数据的上限6106...
     sEndID:string;////取得数据的下限
     //////////////////////////////////////////////
     R_CPFirstQ:TStringList;
     R_CPFirstQL:Array[0..30] of integer; ////存储红球的偏度值
     /////存储球之间的偏度差//////////////
     R_CPPDSub:Array[0..30] of integer;
     /////
     sMax:string;/////存储在计算选号法中甬道的本期期号////////////
     _LastID:Array[1..7] of integer;
     /////计算偏度所用的///////////
     _LeastValue1:TStringList;
     _LeastValue2:TStringList;
     _LeastValue3:TStringList;
     _LeastValue4:TStringList;
     _LeastValue5:TStringList;
     _LeastValue6:TStringList;
     _LeastValue7:TStringList;
     ////////////////////////////////
     //////计算散度用的//////////////
      _LeastPDValue:Array[1..7,1..7] of TStringList;////存储相减,想加得到的数值
      _LeastPDValue1:Array[1..7] of TStringList;/////存储相减想加合并后无重复值的组合
      _Area1_Value:Array[1..7] of TStringList;
      _Area2_Value:Array[1..7] of TStringList;
      _Area3_Value:Array[1..7] of TStringList;
      ///////
      _Area1:Array[1..7] of string;
      _Area2:Array[1..7] of string;
      _Area3:Array[1..7] of string;
      /////下面是用语计算必出号码所用的///////////
      _EqualPD:Array[1..7] of TStringList;
      _EqualPD1:Array[1..7] of TStringList;
      _R:Array[1..6] of integer;
      _Tmp_x:string;
      //////用于计算TabCtrl.index=4中偏度与散度除3余数/////
     _DivPD:Array[1..200] of integer;/////存储偏度
     _DivSD:Array[1..200] of integer;/////存储散度
     _DivAC:Array[1..200] of integer;////存储AC值
     _DivPD1:Array[1..200] of integer;////存储除3后偏度
     _DivSD1:Array[1..200] of integer;////存储除3后散度
     _DivAC1:Array[1..200] of integer;////存储除3后AC
     ////用于计算偏度号码差值和偏度号码尾数差//////////
    _PD_Sub:Array[1..100] of integer;
    _PD_Sub_Last:Array[1..100] of integer;
    _PD_Sub_Value:Array[1..100] of integer;
     /////////////////////////////////
begin
     Currentpath:=ExtractFilePath(paramstr(0));
     sBeginID:=S_BeginID;
     sEndID:=s_EndID;
//////////TabCtrl.Tabindex=1 是偏散度曲线then//////////////////
     if TabCtrl.TabIndex=1  then
     begin
         ////取得数据/////////
         for i:=grid1.RowCount-27 to grid1.RowCount do
         begin
             PD_Data[i+28-grid1.RowCount]:=strtoint(grid1.cells[10,i-1].foretext);
             SD_Data[i+28-grid1.RowCount]:=strtoint(grid1.cells[11,i-1].foretext);
             AC_Data[i+28-grid1.RowCount]:=strtoint(grid1.cells[12,i-1].foretext);
             QH_Data[i+28-grid1.RowCount]:=trim(grid1.cells[1,i-1].foretext);
         end;//for i
         //showmessage(inttostr(SD_Data[1]));
         /////画散度曲线//////////////////////
         chart1.Series[0].Clear;
         for i:=0 to 27 do
         begin
             series1.Add(SD_Data[1+i],QH_Data[i+1],clteecolor);
         end;//for i
         /////画偏度曲线//////////////////////
         chart2.Series[0].Clear;
         for i:=0 to 27 do
         begin
             Lineseries1.Add(PD_Data[1+i],'',clteecolor);
         end;//for i
         /////画AC曲线//////////////////////
         chart3.Series[0].Clear;
         for i:=0 to 27 do
         begin
             Lineseries2.Add(AC_Data[1+i],'',clteecolor);
         end;//for i

     end;////TabCtrl.index=1
//////Tabctrl.index=2是分球的偏度曲线/////////////////////
     if TabCtrl.TabIndex=2 then
     begin
          ///首先得到彩票的数据//////////
         for j:=1 to 6 do
         begin
            with    AdoQuery1 do
            begin
              connectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+CurrentPath+'\sale.mdb;Persist Security Info=False';
              close;
              sql.Clear;
              strSql:='Select * From  CPData  where sID>="'+sbeginID+'"  and  sID<="'+sEndID+'"  order by sID';
              sql.Add(strSql);
              prepared;
              open;
              if recordcount<>0 then
              begin
                 i:=0;
                 while not eof do
                 begin
                      FieldIndex:='r'+inttostr(j);
                      R_CPData1[j,i]:=FieldByName(FieldIndex).AsInteger;
                      //R_CPData2[i]:=FieldByName('r2').AsInteger;
                      //R_CPData3[i]:=FieldByName('r3').AsInteger;
                      //R_CPData4[i]:=FieldByName('r4').AsInteger;
                      //R_CPData5[i]:=FieldByName('r5').AsInteger;
                      //R_CPData6[i]:=FieldByName('r6').AsInteger;
                      R_CPID[i]:=FieldByName('sID').AsString;
                      next;
                      inc(i);
                 end;///while
              end;//if
            end;///with
          end;//forj
          /////开始计算第一个球的偏度////////////////
          R_CPFirstQ:=TStringList.Create;

          for i:=0 to 27 do
          begin
              R_CPFirstQ.Clear;
              for j:=1 to 6 do
              begin
                  if  length(trim(formatFloat('##0',abs(R_CPData1[1,i+1]-R_CPData1[j,i]))))=1 then
                  begin
                      R_CPFirstQ.Add('0'+trim(formatFloat('##0',abs(R_CPData1[1,i+1]-R_CPData1[j,i]))));
                  end
                  else
                  begin
                     R_CPFirstQ.Add(trim(formatFloat('##0',abs(R_CPData1[1,i+1]-R_CPData1[j,i]))));

                  end;
              end;//for j
              R_CPFirstQ.Sort;
              //showmessage(R_CPFirstQ.Text);
              R_CPfirstQL[i+1]:=strtoint(R_CPFirstQ[0]);

              //showmessage(inttostr(R_CPFirstQ2[i-1]));
          end;//for i
          /////画第一个红球偏度的曲线/////////////////////
          R_CPFirstQL[0]:=2;
          chart4.Series[0].Clear;
          for i:=0 to 27 do
          begin
              lineSeries3.Add(R_CPFirstQL[i],R_CPID[i],clteecolor);
          end;
          ///////计算两个球之间偏度变化的曲线////////////////////////////
          ///首先取得两个球之间的偏度差//////////////////////////////////
          R_CPPDSub[0]:=2;
          for i:=0 to 27 do
          begin
              R_CPPDSub[i+1]:=abs(R_CPFirstQL[i+1]-R_CPFirstQL[i]);
          end;///
          chart5.Series[0].Clear;
          for i:=0 to 27 do
          begin
              lineSeries4.Add(R_CPPDSub[i],'',clteecolor);
          end;
          ////////////////////////////////////////////////////////////////
     end;/////if tabctrl=2
//////tabctrl.index=2结束//////////////////////////////////
//////tabctrl.tabindex=3是计算法选号开始//////////////////////
     if TabCtrl.TabIndex=3 then
     begin
         //////初始化表格Grid3_1//////////////////////
         grid3_1.RowHeights[1]:=30;
         grid3_1.SetMerges(rect(1,1,grid3_1.ColCount-1,1));
         grid3_1.Cells[1,1].FontSize:=14;
         grid3_1.Cells[1,1].ForeText:='偏散度计算方法';
         grid3_1.ColWidths[1]:=100;
         grid3_1.Cells[1,2].ForeText:='本期期号';
         grid3_1.SetMerges(rect(2,2,grid3_1.ColCount-1,2));
         grid3_1.Cells[1,3].ForeText:='本期开奖号码';
         grid3_1.Cells[1,4].ForeText:='本期偏度';
         grid3_1.SetMerges(rect(2,4,grid3_1.ColCount-1,4));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -