showdataform.cpp

来自「16 relay output channels and 16 isolated」· C++ 代码 · 共 86 行

CPP
86
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "ShowDataForm.h"
#include "MainForm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmShowData *frmShowData;
//---------------------------------------------------------------------------
__fastcall TfrmShowData::TfrmShowData(TComponent* Owner)
        : TForm(Owner)
{
    page=0;
}
//---------------------------------------------------------------------------
void TfrmShowData::ShowData()
{
   lstData->Clear();
   int i,j;
   ULONG dataindx;
   ULONG data;
   AnsiString  strVale;

  for( i=0 ;i<1000;i++)
  {
     strVale=Format("%5.5d - %5.5d  ",ARRAYOFCONST((page*1000*10+i*10,page*1000*10+i*10+9)));

     for( j=0;j<10;j++)
     {
        dataindx= page*1000*10+i*10+j;
        strVale =strVale+ "  ";
        if ( frmMain->dwDataWidth == 3 )     // 8-bit
            strVale=strVale+IntToHex(((BYTE  *)(frmMain->hUserBuf))[dataindx],2);
        else if ( frmMain->dwDataWidth == 2 )  // 16-bit
            strVale=strVale+IntToHex(((USHORT  *)(frmMain->hUserBuf))[dataindx],4);
        else                // 32-bit
        {
           data = *((ULONG  *)(frmMain->hUserBuf)+dataindx);
            strVale=strVale+IntToHex((__int64)data,8);
         }
         if(dataindx >= frmMain->dwCount)
        {
           lstData->Items->Add(strVale);
           return;
        }
     }
     lstData->Items->Add(strVale);
     }
}

void __fastcall TfrmShowData::FormShow(TObject *Sender)
{
     page=0;
     btnPrev->Enabled=false;
     ShowData();   
}
//---------------------------------------------------------------------------


void __fastcall TfrmShowData::btnNextClick(TObject *Sender)
{
  page=page+1;
  if(page*1000*10 >= frmMain->dwCount)
       btnNext->Enabled=false;

  btnPrev->Enabled=true;
  ShowData();        
}
//---------------------------------------------------------------------------

void __fastcall TfrmShowData::btnPrevClick(TObject *Sender)
{
  page=page-1;
  if(page<=0 )
  {
     btnPrev->Enabled=false;
  }
  ShowData();
  btnNext->Enabled=true;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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