📄 mixdisp_dlg.~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 + -