📄 tagdef.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 "TAGDef.h"
#include "std_sub.h"
#include "AIAO_Def.h"
#include "DIDO_Def.h"
#include "TMCN_Def.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormActivate(TObject *Sender)
{
OutputCoil1Click(Sender);
SAVE_FLAG= 1;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormCreate(TObject *Sender)
{
OutputCoil1Click(Sender);
SAVE_FLAG= 1;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Cancelnosave1Click(TObject *Sender)
{
// cancel and not save
Form2->Close();
SAVE_FLAG= 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::ExitandSave1Click(TObject *Sender)
{
// Exit and save
Form2->Close();
SAVE_FLAG= 1;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
// From Close
int fd, pos;
if(SAVE_FLAG==0) // read back old define
{
fd= sopen(DEMO_SYS_TBL, O_RDWR | O_BINARY, SH_DENYNO);
pos= 0;
lseek(fd, pos, SEEK_SET);
read(fd, (char *)&Reg_Def, sizeof(Reg_Def));
read(fd, (char *)&Coil_Def, sizeof(Coil_Def));
close(fd);
}
else if(SAVE_FLAG==1) // save new define
{
fd= sopen(DEMO_SYS_TBL, O_RDWR | O_BINARY, SH_DENYNO);
pos= 0;
lseek(fd, pos, SEEK_SET);
write(fd, (char *)&Reg_Def, sizeof(Reg_Def));
write(fd, (char *)&Coil_Def, sizeof(Coil_Def));
close(fd);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm2::OutputCoil1Click(TObject *Sender)
{
Label1->Caption= "Input Coil";
display_listview_title(ListView1, 0);
display_listview_fix_item(ListView1, 0);
display_listview_data_Def(ListView1, 0);
DISP_FLAG= 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::OutputCoil2Click(TObject *Sender)
{
Label1->Caption= "Output Coil";
display_listview_title(ListView1, 1);
display_listview_fix_item(ListView1, 1);
display_listview_data_Def(ListView1, 1);
DISP_FLAG= 1;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::InputCoilSoft1Click(TObject *Sender)
{
Label1->Caption= "Input Coil Soft";
display_listview_title(ListView1, 4);
display_listview_fix_item(ListView1, 4);
display_listview_data_Def(ListView1, 4);
DISP_FLAG= 4;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::OutputCoilSoft1Click(TObject *Sender)
{
Label1->Caption= "Output Coil Soft";
display_listview_title(ListView1, 5);
display_listview_fix_item(ListView1, 5);
display_listview_data_Def(ListView1, 5);
DISP_FLAG= 5;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::InputRegister1Click(TObject *Sender)
{
Label1->Caption= "Input Register";
display_listview_title(ListView1, 2);
display_listview_fix_item(ListView1, 2);
display_listview_data_Def(ListView1, 2);
DISP_FLAG= 2;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::HoldingRegister1Click(TObject *Sender)
{
Label1->Caption= "Holding Register";
display_listview_title(ListView1, 3);
display_listview_fix_item(ListView1, 3);
display_listview_data_Def(ListView1, 3);
DISP_FLAG= 3;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::InputRegisterSoft1Click(TObject *Sender)
{
Label1->Caption= "Input Register Soft";
display_listview_title(ListView1, 6);
display_listview_fix_item(ListView1, 6);
display_listview_data_Def(ListView1, 6);
DISP_FLAG= 6;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::HoldingRegisterSoft1Click(TObject *Sender)
{
Label1->Caption= "Holding Register Soft";
display_listview_title(ListView1, 7);
display_listview_fix_item(ListView1, 7);
display_listview_data_Def(ListView1, 7);
DISP_FLAG= 7;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::TimerTable1Click(TObject *Sender)
{
Label1->Caption= "Timer Table";
display_listview_title(ListView1, 8);
display_listview_fix_item(ListView1, 8);
display_listview_data_Def(ListView1, 8);
DISP_FLAG= 8;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::CounterTable1Click(TObject *Sender)
{
Label1->Caption= "Counter Table";
display_listview_title(ListView1, 9);
display_listview_fix_item(ListView1, 9);
display_listview_data_Def(ListView1, 9);
DISP_FLAG= 9;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::ListView1DblClick(TObject *Sender)
{
// set data
int i, idx;
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
switch(DISP_FLAG)
{
case 0: // Input Coil
DIDODefDlg->Execute(DISP_FLAG, idx);
break;
case 1: // Output Coil
DIDODefDlg->Execute(DISP_FLAG, idx);
break;
case 2: // Input Register
AIAODefDlg->Execute(DISP_FLAG, idx);
break;
case 3: // Holding Register
AIAODefDlg->Execute(DISP_FLAG, idx);
break;
case 4: // Input Coil Soft
DIDODefDlg->Execute(DISP_FLAG, idx);
break;
case 5: // Output Coil Soft
DIDODefDlg->Execute(DISP_FLAG, idx);
break;
case 6: // Input Register Soft
AIAODefDlg->Execute(DISP_FLAG, idx);
break;
case 7: // Output Register Soft
AIAODefDlg->Execute(DISP_FLAG, idx);
break;
case 8: // Timer Table
TMCNDefDlg->Execute(DISP_FLAG, idx);
break;
case 9: // Counter Table
TMCNDefDlg->Execute(DISP_FLAG, idx);
break;
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -