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

📄 mixdisp_dlg.~cpp

📁 《WinCE.NET嵌入式工业用控制器及自动控制系统设计》的源代码
💻 ~CPP
字号:
//---------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include  <stdio.h>
#include <stdlib.h>
#include <process.h>
#include  <string.h>
#include  <memory.h>
#include  <fcntl.h>
#include  <sys\types.h>
#include  <sys\stat.h>
#include  <share.h>
#include  <io.h>

#include "WinCONSYS.h"   // common variable define
#include "MixDisp_Dlg.h"
//---------------------------------------------------------------------
#pragma resource "*.dfm"
TMixDispDlg *MixDispDlg;
//---------------------------------------------------------------------
__fastcall TMixDispDlg::TMixDispDlg(TComponent* AOwner)
	: TForm(AOwner)
{
}
//---------------------------------------------------------------------
int __fastcall TMixDispDlg::Execute(void)
{
  int i, rc;
  TListItem   *item;
  char  buff[80];

  ListView1->Items->Clear();
  for(i=0; i<MIX_DISPLAY_CASE; i++)
  {
     item = ListView1->Items->Add();
     sprintf(buff, "%3d", i+1);
     item->Caption = buff;
     sprintf(buff, "");
     item->SubItems->Add(buff);
     sprintf(buff, "");
     item->SubItems->Add(buff);
     sprintf(buff, "");
     item->SubItems->Add(buff);
  }
  for(i=0; i<MIX_DISPLAY_CASE; i++)
     display_item(i);

  SEL_IDX= 0;
  ListView1->Items->Item[0]->Selected= true;
  sprintf(buff, "Case No-%2d", 1);
  Label1->Caption= buff;
  ComboBox1->ItemIndex= MIX_UNIT[0].spare1;
  sprintf(buff, "%-3d", MIX_UNIT[0].req_addr);
  MaskEdit1->Text= buff;
  sprintf(buff, "%-2d", MIX_UNIT[0].words);
  MaskEdit2->Text= buff;

  rc= ShowModal();        // display Form
  if(rc==mrOk)
   {
    
    return(0);
   }
  return(-1);

}
//---------------------------------------------------------------------
void __fastcall TMixDispDlg::ListView1Click(TObject *Sender)
{
   int i, idx;
   char buff[80];

  for(i=0, idx=-1; i<ListView1->Items->Count; i++)
  {
     if(ListView1->Items->Item[i]->Selected == false) continue;
     idx= i;
     break;
  }
  if(idx == -1) return;  // no selected
  SEL_IDX= idx;
  sprintf(buff, "Case No-%2d", idx+1);
  Label1->Caption= buff;
  ComboBox1->ItemIndex= MIX_UNIT[idx].spare1;
  sprintf(buff, "%-3d", MIX_UNIT[idx].req_addr);
  MaskEdit1->Text= buff;
  sprintf(buff, "%-2d", MIX_UNIT[idx].words);
  MaskEdit2->Text= buff;

}
//---------------------------------------------------------------------
void __fastcall TMixDispDlg::display_item(int idx)
{
   int i;
   char buff[80];

   i= MIX_UNIT[idx].spare1;
   ListView1->Items->Item[idx]->SubItems->Strings[0]= ComboBox1->Items->Strings[i];
   sprintf(buff, "%-3d", MIX_UNIT[idx].req_addr);
   ListView1->Items->Item[idx]->SubItems->Strings[1]= buff;
   sprintf(buff, "%-2d", MIX_UNIT[idx].words);
   ListView1->Items->Item[idx]->SubItems->Strings[2]= buff;
}
//---------------------------------------------------------------------------
void __fastcall TMixDispDlg::BitBtn1Click(TObject *Sender)
{
// Set data
   int no;

   MIX_UNIT[SEL_IDX].spare1= ComboBox1->ItemIndex;
   no= atoi(MaskEdit1->Text.c_str());
   MIX_UNIT[SEL_IDX].req_addr= no;
   no= atoi(MaskEdit2->Text.c_str());
   MIX_UNIT[SEL_IDX].words= no;
   display_item(SEL_IDX);
}
//---------------------------------------------------------------------------
void __fastcall TMixDispDlg::OKBtnClick(TObject *Sender)
{
   int pos, fd;

   fd= sopen(DEMO_SYS_TBL, O_RDWR | O_BINARY, SH_DENYNO);
   pos= sizeof(Reg_Def) + sizeof(Coil_Def) + sizeof(MB_PORT) + sizeof(MB_UNIT)
        + sizeof(PARA_IO);
   lseek(fd, pos, SEEK_SET);
   write(fd, (char *)MIX_UNIT, sizeof(MIX_UNIT));
   close(fd);

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

⌨️ 快捷键说明

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