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

📄 unitmain.~cpp

📁 这是控件内部使用的对话框
💻 ~CPP
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------------
bool __fastcall TForm1::CommSet(void)
{
  FormCommSettings = new TFormCommSettings(this,YbCommDevice1,true);
  bool bSetOK = FormCommSettings->ShowModal() == IDOK;
  delete FormCommSettings;

  if(bSetOK)
   {
     AppCfg.ReadCommToCfg(YbCommDevice1);
     AppCfg.Save(); //保存到配置文件
   }
  return bSetOK;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Panel4Resize(TObject *Sender)
{
  Edit1->Width = Panel4->Width;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ActionExitExecute(TObject *Sender)
{
  Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ActionCommSetExecute(TObject *Sender)
{
  CommSet();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ActionLanguageExecute(TObject *Sender)
{
  FormOptions = new TFormOptions(this);
  bool bOK = FormOptions->ShowModal();
  delete FormOptions;
  if(bOK)InitCtrls();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ActionAboutExecute(TObject *Sender)
{
  FormAbout = new TFormAbout(this);
  FormAbout->ShowModal();
  delete FormAbout;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ActionSendExecute(TObject *Sender)
{
  int nBytes = 0;
  char Buffer[1000], *EndPtr;
  AnsiString t,s = Edit1->Text.Trim();
  while(s.Length()>0)
   {
     int p = s.Pos(' '); //空格
     if(p>0)
      {
        t = s.SubString(1,p-1);
        s = s.SubString(p+1,s.Length()).Trim();
        Buffer[nBytes++] = strtol(t.c_str(), &EndPtr, 16); //十六进制字符串转成字节
      }
     else //还剩下最后一个字节
      {
        t = s;
        s = "";
        Buffer[nBytes++] = strtol(t.c_str(), &EndPtr, 16); //十六进制字符串转成字节
      }
   }
  YbCommDevice1->Write(Buffer,nBytes);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  unsigned char Buf[8192]; //收到的字节数不会超过串口缓存的容量, 所以分配一个缓存容量相同的Buf
  int n = YbCommDevice1->Read(Buf,8192); //收到 n 个字节
  AnsiString s;

  for(int i=0; i<n; i++)
    s += IntToHex(Buf[i],2) + " ";
  s = s.Trim();

  if(!s.IsEmpty())
    Memo1->Lines->Add(s);
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{         
  Word h,m,s,msec;
  if (CBVertical->Checked)// if VERTICAL SCROLL
    DecodeTime( LineSeries1->YValues->Last(), h, m, s, msec);
  else
    DecodeTime( LineSeries1->XValues->Last(), h, m, s, msec);
  // add a new random point to the Series (one more minute) }
  m++;
  if (m == 60) {
    m = 0;
    h++;
  }
  AddPoint( EncodeTime( h, m, s, msec), random(10),clRed );
  CalcScrollBarPos();

  String Stemp=IntToStr(random(10))+" "+IntToStr(random(10))+"\n";
//  SaveFile <<Stemp.c_str();
//  SaveFile <<"Hello World, from www.cpp-home.com and Loobian!\n";
}
//---------------------------------------------------------------------------

void __fastcall TForm1::CBVerticalClick(TObject *Sender)
{
  if (CBVertical->Checked) { // if VERTICAL SCROLL
    LineSeries1->YValues->Order = loAscending;
    LineSeries1->XValues->Order = loNone;
    LineSeries1->XValues->DateTime = false;
    LineSeries1->YValues->DateTime = true;
    Series1->YValues->Order = loAscending;
    Series1->XValues->Order = loNone;
    Series1->XValues->DateTime = false;
    Series1->YValues->DateTime = true;
    Series2->YValues->Order = loAscending;
    Series2->XValues->Order = loNone;
    Series2->XValues->DateTime = false;
    Series2->YValues->DateTime = true;
    Series3->YValues->Order = loAscending;
    Series3->XValues->Order = loNone;
    Series3->XValues->DateTime = false;
    Series3->YValues->DateTime = true;
  } else {
    LineSeries1->XValues->Order = loAscending;
    LineSeries1->YValues->Order = loNone;
    LineSeries1->YValues->DateTime = false;
    LineSeries1->XValues->DateTime = true;

    Series1->XValues->Order = loAscending;
    Series1->YValues->Order = loNone;
    Series1->YValues->DateTime = false;
    Series1->XValues->DateTime = true;

    Series2->XValues->Order = loAscending;
    Series2->YValues->Order = loNone;
    Series2->YValues->DateTime = false;
    Series2->XValues->DateTime = true;

    Series3->XValues->Order = loAscending;
    Series3->YValues->Order = loNone;
    Series3->YValues->DateTime = false;
    Series3->XValues->DateTime = true;
  }
  Chart1->LeftAxis->Automatic = true;// <-- this makes axis scales AUTOMATIC AGAIN !
  Chart1->BottomAxis->Automatic = true;// <-- this makes axis scales AUTOMATIC AGAIN !
  FillDemoPoints();  // <-- fill sample values again !
}
//---------------------------------------------------------------------------



//--------------------------------------------------------------------------
void __fastcall TForm1::ScrollBar2Change(TObject *Sender)
{
        double Difer;
  if (!ChangingBars) {
    Difer = Chart1->LeftAxis->Maximum-Chart1->LeftAxis->Minimum;
    Chart1->LeftAxis->Minimum = Chart1->MinYValue(Chart1->LeftAxis)+ScrollBar2->Position*Difer/100.0;
    Chart1->LeftAxis->Maximum = Chart1->LeftAxis->Minimum+Difer;
  }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Chart1Resize(TObject *Sender)
{
   CalcScrollBarPos();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Chart1UndoZoom(TObject *Sender)
{
    CalcScrollBarPos();    
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Chart1Zoom(TObject *Sender)
{
   CalcScrollBarPos();     
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
         Chart1->ZoomPercent(95);  CalcScrollBarPos();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
  if (CBVertical->Checked) { // if VERTICAL SCROLL
    LineSeries1->YValues->Order = loAscending;
    LineSeries1->XValues->Order = loNone;
    LineSeries1->XValues->DateTime = false;
    LineSeries1->YValues->DateTime = true;
    Series1->YValues->Order = loAscending;
    Series1->XValues->Order = loNone;
    Series1->XValues->DateTime = false;
    Series1->YValues->DateTime = true;
    Series2->YValues->Order = loAscending;
    Series2->XValues->Order = loNone;
    Series2->XValues->DateTime = false;
    Series2->YValues->DateTime = true;

    Series3->YValues->Order = loAscending;
    Series3->XValues->Order = loNone;
    Series3->XValues->DateTime = false;
    Series3->YValues->DateTime = true;
  } else {
    LineSeries1->XValues->Order = loAscending;
    LineSeries1->YValues->Order = loNone;
    LineSeries1->YValues->DateTime = false;
    LineSeries1->XValues->DateTime = true;

    Series1->XValues->Order = loAscending;
    Series1->YValues->Order = loNone;
    Series1->YValues->DateTime = false;
    Series1->XValues->DateTime = true;

    Series2->XValues->Order = loAscending;
    Series2->YValues->Order = loNone;
    Series2->YValues->DateTime = false;
    Series2->XValues->DateTime = true; 

    Series3->XValues->Order = loAscending;
    Series3->YValues->Order = loNone;
    Series3->YValues->DateTime = false;
    Series3->XValues->DateTime = true;
  }
  Chart1->LeftAxis->Automatic = true;// <-- this makes axis scales AUTOMATIC AGAIN !
  Chart1->BottomAxis->Automatic = true;// <-- this makes axis scales AUTOMATIC AGAIN !
  FillDemoPoints();  // <-- fill sample values again !

 //实时保存数据文件
    String FileName = TRelPath(); //获取文件夹所在路径
    FileName+="TestData_"+Now().FormatString("yyyy-mm-dd hh-nn-ss")+".txt"; //构建文件名
//    SaveFile.open(FileName.c_str(),ofstream::out);  //创建新文件
///    if(!SaveFile)
//        Application->MessageBox("创建文件失败!", "提示", 0);


 }
//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)
{
 //   SaveFile.close();           //文件关闭.保存

}

//---------------------------------------------------------------------------

⌨️ 快捷键说明

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