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

📄 draw.~cp

📁 数据采集
💻 ~CP
📖 第 1 页 / 共 5 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include <stdio.h>
#include <stdlib.h>
#include <vcl\Printers.hpp>
#include <math.h>
#include "draw.h"
#include "main.h"
#include "thread.h"
#include "global.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

Tform_draw *form_draw;
static long offset=0,step=1;
int dd=50;
int flag_txt=1,flag_ofst=0;

int dg1=540;
int bdg1=80,bdg2=330,bdg3=540;
int cpz1=70, cpz2=140,cpz3=290,cpz4=440,cpz5=540;
int ncpz1=120, ncpz2=240,ncpz3=360,ncpz4=480,ncpz5=540;
int stmdg1=270,stmdg2=540;
int stmbdg1=50,stmbdg2=100,stmbdg3=220,stmbdg4=340,stmbdg5=440,stmbdg6=540;
float kjz_bak;   // save bd.k_j_z
bool flag_qh=false; //切换

bool flag_tm1=true; //台面1
bool flag_tm2=false; //台面2
bool flag_bt=false;  //棒图
int flag_tm=1;
const int C4=108; // (600-60)/5=108
extern TDonThread  *donThread;
//---------------------------------------------------------------------------
__fastcall Tform_draw::Tform_draw(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall Tform_draw::draw()
{
    int i;
    AnsiString str;

    // draw zero
    Canvas->Pen->Color=clGray;

    if(bd.hq_mode==HQ_CPZGZ){
      for(int i=0;i<4;i++){
        Canvas->MoveTo(0,(i+1)*C4); Canvas->LineTo(800,(i+1)*C4);
      }
      if(flag_tm==1){
        str=IntToStr((int)zero_j1);Canvas->TextOut(10,1*C4-20,str);
        str=IntToStr((int)zero_j2);Canvas->TextOut(10,2*C4-20,str);
        str=IntToStr((int)zero_z1);Canvas->TextOut(10,3*C4-20,str);
        str=IntToStr((int)zero1);   Canvas->TextOut(10,4*C4-20,str);
      }else{
        str=IntToStr((int)zero_j3);Canvas->TextOut(10,1*C4-20,str);
        str=IntToStr((int)zero_j4);Canvas->TextOut(10,2*C4-20,str);
        str=IntToStr((int)zero_z2);Canvas->TextOut(10,3*C4-20,str);
        str=IntToStr((int)zero2);   Canvas->TextOut(10,4*C4-20,str);
      }
    }else if(bd.hq_mode==HQ_2J1Z){
      for(int i=0;i<4;i++){
        Canvas->MoveTo(0,(i+1)*C4); Canvas->LineTo(800,(i+1)*C4);
      }
      str=IntToStr((int)zero_j1);Canvas->TextOut(10,1*C4-20,str);
      str=IntToStr((int)zero_j2);Canvas->TextOut(10,2*C4-20,str);
      str=IntToStr((int)zero_z1);Canvas->TextOut(10,3*C4-20,str);
      str=IntToStr((int)zero);   Canvas->TextOut(10,4*C4-20,str);
    }else if(bd.hq_mode==HQ_NEWBDG){
      if(flag_tm1==true){
        for(int i=0;i<4;i++){
          Canvas->MoveTo(0,(i+1)*C4); Canvas->LineTo(800,(i+1)*C4);
        }
        str=IntToStr((int)zero_j1);Canvas->TextOut(10,1*C4-20,str);
        str=IntToStr((int)zero_j2);Canvas->TextOut(10,2*C4-20,str);
        str=IntToStr((int)zero_z1);Canvas->TextOut(10,3*C4-20,str);
        str=IntToStr((int)zero1);   Canvas->TextOut(10,4*C4-20,str);
      }else{
        for(int i=0;i<4;i++){
          Canvas->MoveTo(0,(i+1)*C4); Canvas->LineTo(800,(i+1)*C4);
        }
        str=IntToStr((int)zero_j3);Canvas->TextOut(10,1*C4-20,str);
        str=IntToStr((int)zero_j4);Canvas->TextOut(10,2*C4-20,str);
        str=IntToStr((int)zero_z2);Canvas->TextOut(10,3*C4-20,str);
        str=IntToStr((int)zero2);   Canvas->TextOut(10,4*C4-20,str);
      }
    }else if(bd.hq_mode==HQ_CPZ24){
      for(int i=1;i<6;i++){
        Canvas->MoveTo(0,i*C4); Canvas->LineTo(800,i*C4);
      }
      if(flag_tm%2!=0){
        str=IntToStr((int)zero_j[flag_tm*2-2]);Canvas->TextOut(10,1*C4-20,str);
        str=IntToStr((int)zero_j[flag_tm*2]);  Canvas->TextOut(10,2*C4-20,str);
      }else{
        str=IntToStr((int)zero_j[flag_tm*2-3]);Canvas->TextOut(10,1*C4-20,str);
        str=IntToStr((int)zero_j[flag_tm*2-1]);Canvas->TextOut(10,2*C4-20,str);
      }
      str=IntToStr((int)zero_z[flag_tm-1]);  Canvas->TextOut(10,3*C4-20,str);
      str=IntToStr((int)zero_tm[flag_tm-1]); Canvas->TextOut(10,4*C4-20,str);

      // 1,2,3,4为一组,5,6,7,8为另一组
      if(flag_tm<=4)
        str=IntToStr((int)(zero_tm[0]+zero_tm[1]+zero_tm[2]+zero_tm[3])/4);
      else
        str=IntToStr((int)(zero_tm[4]+zero_tm[5]+zero_tm[6]+zero_tm[7])/4);
      Canvas->TextOut(10,5*C4-20,str);
    }else if(bd.hq_mode==HQ_NEWCPZ){
      Canvas->MoveTo(0,ncpz1); Canvas->LineTo(800,ncpz1);
      Canvas->MoveTo(0,ncpz2); Canvas->LineTo(800,ncpz2);
      Canvas->MoveTo(0,ncpz3); Canvas->LineTo(800,ncpz3);
      Canvas->MoveTo(0,ncpz4); Canvas->LineTo(800,ncpz4);
      if(flag_tm==0){
        str=IntToStr((int)zero1);Canvas->TextOut(10,ncpz1-20,str);
        str=IntToStr((int)zero2);Canvas->TextOut(10,ncpz2-20,str);
        str=IntToStr((int)zero3);Canvas->TextOut(10,ncpz3-20,str);
        str=IntToStr((int)zero4);  Canvas->TextOut(10,ncpz4-20,str);
      }else if(flag_tm==1){
        str=IntToStr((int)zero_j1);Canvas->TextOut(10,ncpz1-20,str);
        str=IntToStr((int)zero_j3);Canvas->TextOut(10,ncpz2-20,str);
        str=IntToStr((int)zero_z1);Canvas->TextOut(10,ncpz3-20,str);
        str=IntToStr((int)zero1);  Canvas->TextOut(10,ncpz4-20,str);
      }else if(flag_tm==2){
        str=IntToStr((int)zero_j2);Canvas->TextOut(10,ncpz1-20,str);
        str=IntToStr((int)zero_j4);Canvas->TextOut(10,ncpz2-20,str);
        str=IntToStr((int)zero_z2);Canvas->TextOut(10,ncpz3-20,str);
        str=IntToStr((int)zero2);  Canvas->TextOut(10,ncpz4-20,str);
      }else if(flag_tm==3){
        str=IntToStr((int)zero_j5);Canvas->TextOut(10,ncpz1-20,str);
        str=IntToStr((int)zero_j7);Canvas->TextOut(10,ncpz2-20,str);
        str=IntToStr((int)zero_z3);Canvas->TextOut(10,ncpz3-20,str);
        str=IntToStr((int)zero3);  Canvas->TextOut(10,ncpz4-20,str);
      }else{
        str=IntToStr((int)zero_j6);Canvas->TextOut(10,ncpz1-20,str);
        str=IntToStr((int)zero_j8);Canvas->TextOut(10,ncpz2-20,str);
        str=IntToStr((int)zero_z4);Canvas->TextOut(10,ncpz3-20,str);
        str=IntToStr((int)zero4);  Canvas->TextOut(10,ncpz4-20,str);
      }
      Canvas->MoveTo(0,ncpz5); Canvas->LineTo(800,ncpz5);
      str=IntToStr((int)zero);   Canvas->TextOut(10,ncpz5-20,str);
    }else if(bd.hq_mode==HQ_CPZ){
      if(flag_qh==false){
        Canvas->MoveTo(0,cpz1); Canvas->LineTo(800,cpz1);
        Canvas->MoveTo(0,cpz2); Canvas->LineTo(800,cpz2);
        Canvas->MoveTo(0,cpz3); Canvas->LineTo(800,cpz3);
        Canvas->MoveTo(0,cpz4); Canvas->LineTo(800,cpz4);
        str=IntToStr((int)zero_j1);Canvas->TextOut(10,cpz1-20,str);
        str=IntToStr((int)zero_j2);Canvas->TextOut(10,cpz2-20,str);
        str=IntToStr((int)zero_z1);Canvas->TextOut(10,cpz3-20,str);
        str=IntToStr((int)zero_z2);Canvas->TextOut(10,cpz4-20,str);
      }
      Canvas->MoveTo(0,cpz5); Canvas->LineTo(800,cpz5);
      str=IntToStr((int)zero);   Canvas->TextOut(10,cpz5-20,str);
    }else if(bd.hq_mode==HQ_BDG){
      Canvas->MoveTo(0,bdg1); Canvas->LineTo(800,bdg1);
      Canvas->MoveTo(0,bdg2); Canvas->LineTo(800,bdg2);
      Canvas->MoveTo(0,bdg3); Canvas->LineTo(800,bdg3);
      str=IntToStr((int)zero_j1); Canvas->TextOut(10,bdg1-20,str);
      str=IntToStr((int)zero_z1); Canvas->TextOut(10,bdg2-20,str);
      str=IntToStr((int)zero);    Canvas->TextOut(10,bdg3-20,str);
    }else if(bd.hq_mode==HQ_DG){
      Canvas->MoveTo(0,dg1); Canvas->LineTo(800,dg1);
      str=IntToStr((int)zero); Canvas->TextOut(10,dg1-20,str);
    }else if(bd.hq_mode==HQ_STMDG){
      Canvas->MoveTo(0,stmdg1); Canvas->LineTo(800,stmdg1);
      Canvas->MoveTo(0,stmdg2); Canvas->LineTo(800,stmdg2);
      str=IntToStr((int)zero1); Canvas->TextOut(10,stmdg1-20,str);
      str=IntToStr((int)zero2); Canvas->TextOut(10,stmdg2-20,str);
    }else if(bd.hq_mode==HQ_STMBDG||bd.hq_mode==HQ_BDG3){
      if(flag_tm1==true){
        Canvas->MoveTo(0,stmbdg1); Canvas->LineTo(800,stmbdg1);
        Canvas->MoveTo(0,stmbdg3); Canvas->LineTo(800,stmbdg3);
        Canvas->MoveTo(0,stmbdg5); Canvas->LineTo(800,stmbdg5);
        str=IntToStr((int)zero_j1); Canvas->TextOut(10,stmbdg1-20,str);
        str=IntToStr((int)zero_z1); Canvas->TextOut(10,stmbdg3-20,str);
        str=IntToStr((int)zero1);   Canvas->TextOut(10,stmbdg5-20,str);
      }else if(flag_tm2==true){
        Canvas->MoveTo(0,stmbdg2); Canvas->LineTo(800,stmbdg2);
        Canvas->MoveTo(0,stmbdg4); Canvas->LineTo(800,stmbdg4);
        Canvas->MoveTo(0,stmbdg6); Canvas->LineTo(800,stmbdg6);
        str=IntToStr((int)zero_j2); Canvas->TextOut(10,stmbdg2-20,str);
        str=IntToStr((int)zero_z2); Canvas->TextOut(10,stmbdg4-20,str);
        str=IntToStr((int)zero2);   Canvas->TextOut(10,stmbdg6-20,str);
      }else{
        if(flag_qh==false){
          Canvas->MoveTo(0,stmbdg1); Canvas->LineTo(800,stmbdg1);
          Canvas->MoveTo(0,stmbdg2); Canvas->LineTo(800,stmbdg2);
          Canvas->MoveTo(0,stmbdg3); Canvas->LineTo(800,stmbdg3);
          Canvas->MoveTo(0,stmbdg4); Canvas->LineTo(800,stmbdg4);
          str=IntToStr((int)zero_j1); Canvas->TextOut(10,stmbdg1-20,str);
          str=IntToStr((int)zero_j2); Canvas->TextOut(10,stmbdg2-20,str);
          str=IntToStr((int)zero_z1); Canvas->TextOut(10,stmbdg3-20,str);
          str=IntToStr((int)zero_z2); Canvas->TextOut(10,stmbdg4-20,str);
        }
        str=IntToStr((int)zero1);   Canvas->TextOut(10,stmbdg5-20,str);
        str=IntToStr((int)zero2);   Canvas->TextOut(10,stmbdg6-20,str);
        Canvas->MoveTo(0,stmbdg5); Canvas->LineTo(800,stmbdg5);
        Canvas->MoveTo(0,stmbdg6); Canvas->LineTo(800,stmbdg6);
      }
    }

     // draw flag
    for(i=0;i/step<800;i++){
      if(bd.hq_mode==HQ_STMBDG||bd.hq_mode==HQ_BDG3||bd.hq_mode==HQ_NEWBDG){
        if(flag_tm1==true){
          if( (*(p_buf_z1+offset+i) & 0x8000)==0x8000){
            Canvas->Pen->Color=clRed;
            Canvas->MoveTo(i/step,0);
            Canvas->LineTo(i/step,600);
            if(flag_ofst) Canvas->TextOut(i/step,290,IntToStr(int(offset+i)));
          }
        }else if(flag_tm2==true){
          if( (*(p_buf_z2+offset+i) & 0x8000)==0x8000){
            Canvas->Pen->Color=clYellow;
            Canvas->MoveTo(i/step,0);
            Canvas->LineTo(i/step,600);
            if(flag_ofst) Canvas->TextOut(i/step,290,IntToStr(int(offset+i)));
          }
        }else{
          if( (*(p_buf_z1+offset+i) & 0x8000)==0x8000){
            Canvas->Pen->Color=clRed;
            Canvas->MoveTo(i/step,0);
            Canvas->LineTo(i/step,600);
            if(flag_ofst) Canvas->TextOut(i/step,290,IntToStr(int(offset+i)));
          }
          if( (*(p_buf_z2+offset+i) & 0x8000)==0x8000){
            Canvas->Pen->Color=clYellow;
            Canvas->MoveTo(i/step,0);
            Canvas->LineTo(i/step,600);
            if(flag_ofst) Canvas->TextOut(i/step,290,IntToStr(int(offset+i)));
          }
        }
      }else if(bd.hq_mode==HQ_NEWCPZ){
        if(flag_tm==0){
          PUSHORT tmp_p;
          for(int iii=0;iii<5;iii++){
            if(     iii==0) tmp_p=p_buf_z1;
            else if(iii==1) tmp_p=p_buf_z2;
            else if(iii==2) tmp_p=p_buf_z3;
            else if(iii==3) tmp_p=p_buf_z4;
            else if(iii==4) tmp_p=p_buf_j1;

            if( (*(tmp_p+offset+i) & 0x8000)==0x8000){
              Canvas->Pen->Color=clRed;
              Canvas->MoveTo(i/step,120*iii);
              Canvas->LineTo(i/step,120*(iii+1));
              if(flag_ofst) Canvas->TextOut(i/step,120*iii,IntToStr(int(offset+i)));
              //str=IntToStr((int)kg[jj].ofst);
              //Canvas->TextOut((kg[jj].ofst-offset)/step,150*(kg[jj].who-1)+20,str);
            }
          }
        }else if(flag_tm==10){
          PUSHORT tmp_p;
          tmp_p=p_buf_j1;
          if( (*(tmp_p+offset+i) & 0x8000)==0x8000){
            Canvas->Pen->Color=clRed;
            Canvas->MoveTo(i/step,0);
            Canvas->LineTo(i/step,600);
            if(flag_ofst) Canvas->TextOut(i/step,290,IntToStr(int(offset+i)));
          }
        }else{
          PUSHORT tmp_p;
          if(flag_tm==1) tmp_p=p_buf_z1;
          else if(flag_tm==2) tmp_p=p_buf_z2;
          else if(flag_tm==3) tmp_p=p_buf_z3;
          else  tmp_p=p_buf_z4;
          if( (*(tmp_p+offset+i) & 0x8000)==0x8000){
            Canvas->Pen->Color=clRed;
            Canvas->MoveTo(i/step,0);
            Canvas->LineTo(i/step,600);
            if(flag_ofst) Canvas->TextOut(i/step,290,IntToStr(int(offset+i)));
          }
        }
      }else if(bd.hq_mode==HQ_CPZ24){
        if(flag_tm>8||flag_tm<1) err("draw():err flag_tm");
        else if( (*(p_buf_z[flag_tm-1]+offset+i) & 0x8000)==0x8000){
          Canvas->Pen->Color=clRed;
          Canvas->MoveTo(i/step,0);
          Canvas->LineTo(i/step,600);
          if(flag_ofst) Canvas->TextOut(i/step,290,IntToStr(int(offset+i)));
        }
      }else{
        if( (*(p_buf_z1+offset+i) & 0x8000)==0x8000){
          Canvas->Pen->Color=clRed;
          Canvas->MoveTo(i/step,0);
          Canvas->LineTo(i/step,600);
          if(flag_ofst) Canvas->TextOut(i/step,290,IntToStr(int(offset+i)));
        }
      }
    }


    //  draw 棒图
    if(flag_bt==true){
      int kk,j;
      int ab_cnt=0,bl_cnt=0;

      Canvas->Pen->Color=clNavy ;
      if(bd.hq_mode==HQ_CPZ24){
        Canvas->MoveTo(0,1*C4); Canvas->LineTo(800,1*C4);
        Canvas->MoveTo(0,2*C4); Canvas->LineTo(800,2*C4);
      }else if(bd.hq_mode==HQ_NEWCPZ){
        Canvas->MoveTo(0,ncpz1);    Canvas->LineTo(800,ncpz1);
        Canvas->MoveTo(0,ncpz2);    Canvas->LineTo(800,ncpz2);
      }else{
        Canvas->MoveTo(0,300);
        Canvas->LineTo(800,300);
      }

      /*
      for(i=0;i<800;i++){ // draw kk
        kk=get_kk(1,offset+i);
        Canvas->MoveTo(i,300-kk);
        Canvas->LineTo(i,300-kk+1);
      } */


      if(bd.hq_mode==HQ_NEWCPZ){
        if(flag_tm==1){  draw_bt1();}//// 台面1
        else if(flag_tm==2){draw_bt2();}//// 台面2
        else if(flag_tm==3){draw_bt3();}//// 台面3
        else if(flag_tm==4){draw_bt4();}//// 台面4
      }

      else if(bd.hq_mode==HQ_STMBDG||bd.hq_mode==HQ_BDG3){
        Canvas->Pen->Color=clWhite ;
        if(flag_tm1==true){      //// 台面1
          for(i=0;i<800;i++){
            kk=get_kk(1,offset+i);
            if(kk>0) ab_cnt++;
            else{
              for(j=i-ab_cnt;j<i;j++){
                Canvas->MoveTo(j,300-(data_j1(offset+i-ab_cnt)-zero_j1)/dd);
                Canvas->LineTo(j,300-(data_j1(offset+i)-zero_j1)/dd);
              }
              ab_cnt=0;
            }
          }
          Canvas->Pen->Color=clGreen ;
          for(i=0;i<800;i++){
            kk=get_kk(1,offset+i);
            if(kk<0) bl_cnt++;
            else{
              for(j=i-bl_cnt;j<i;j++){
                Canvas->MoveTo(j,300-(data_j1(offset+i-bl_cnt)-zero_j1)/dd);
                Canvas->LineTo(j,300-(data_j1(offset+i)-zero_j1)/dd);

⌨️ 快捷键说明

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