📄 editcard.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "EditCard.h"
#include "dido.h"
#include "option.h"
#include "vtl.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
//设置编辑内容
static void SetEditText(TEditCardForm *te,CARDDATA *pCard,int nMode);
//获取编辑内容
static int GetEditText(TEditCardForm *te,CARDDATA *pCard,int nMode);
//检查卡片号码
static int CheckCardNo(char *szBuf);
//检查编号输入
static int CheckCardID(char *szBuf);
//---------------------------------------------------------------------------
__fastcall TEditCardForm::TEditCardForm(TComponent* Owner)
: TForm(Owner)
{
}
//修改卡片
int ReworkCard(TComponent* Owner,void *pCardData,int nMode)
{
TEditCardForm *te;
int rc;
rc=FALSE;
te = new TEditCardForm(Owner);
if(te!=NULL){
SetEditText(te,(CARDDATA *)pCardData,nMode);
if(te->ShowModal()==IDOK)
rc=TRUE;
delete te;
}
return(rc);
}
//设置编辑内容
void SetEditText(TEditCardForm *te,CARDDATA *pCard,int nMode)
{
char szBuf[50];
int i;
DWORD n;
n = pCard->nCardNo;
if(n==0)n=1;
te->m_CardNoUpDown->Position=n;
te->m_nEditID=FALSE;
n =pCard->nCardID;
if(n!=0) wsprintf(szBuf,"%u",n);
else szBuf[0]=0;
te->m_DecEdit->SetTextBuf(szBuf);
for(i=0;;i++){
GetCardTypeStr(szBuf,i);
if(szBuf[0]==0)break;
te->m_TypeCoBox->Items->Add(szBuf);
}
te->m_TypeCoBox->ItemIndex=pCard->nType;
if(nMode==0) //添加
te->m_EditBut->Enabled=FALSE;
else te->m_AddBut->Enabled=FALSE;
te->m_pCard=pCard;
te->m_nMode=nMode;
}
//获取编辑内容
int GetEditText(TEditCardForm *te,CARDDATA *pCard,int nMode)
{
char szCardNo[20],szCardID[20];
int rc;
rc=TRUE;
te->m_CardNoEdit->GetTextBuf(szCardNo,sizeof(szCardNo));
te->m_DecEdit->GetTextBuf(szCardID,sizeof(szCardID));
if(CheckCardNo(szCardNo)==FALSE)
{ te->m_CardNoEdit->SetFocus();rc=FALSE;}
if(rc && CheckCardID(szCardID)==FALSE)
{ te->m_DecEdit->SetFocus();rc=FALSE;}
if(rc){
pCard->nCardID=strtoul(szCardID,NULL,10);
pCard->nCardNo=strtoul(szCardNo,NULL,10);
pCard->nType=te->m_TypeCoBox->ItemIndex;
}
return(rc);
}
//检查卡片号码
int CheckCardNo(char *szBuf)
{
static char pszText[]="\"卡片号码\" 只能为数字!";
int rc;
rc=TRUE;
if(IsStrNumeric(szBuf)==FALSE)
{
MessageBeep(MB_ICONSTOP);
Application->MessageBox(pszText,GetMainTitle(),
MB_OK|MB_ICONINFORMATION);
rc=FALSE;
}
return(rc);
}
//检查编号输入
int CheckCardID(char *szBuf)
{
static char pszText[]="\"卡片内码\"只能为数字!";
int rc;
if(IsStrNumeric(szBuf)==FALSE)
{
MessageBeep(MB_ICONSTOP);
Application->MessageBox(pszText,GetMainTitle(),
MB_OK|MB_ICONINFORMATION);
rc=FALSE;
}
return(rc);
}
// 添加/修改
void __fastcall TEditCardForm::OkButClick(TObject *Sender)
{
int rc;
rc = GetEditText(this,(CARDDATA *)m_pCard,m_nMode);//获取编辑内容
if(rc){ ModalResult=IDOK;}
else { ModalResult=0; }
}
void __fastcall TEditCardForm::m_DecEditChange(TObject *Sender)
{
char szBuf[30];
int nCardID;
if(m_nEditID==FALSE){
m_nEditID=TRUE;
m_DecEdit->GetTextBuf(szBuf,sizeof(szBuf));
nCardID=atol(szBuf);
if(nCardID!=0) wsprintf(szBuf,"%X",nCardID);
else szBuf[0]=0;
m_HexEdit->SetTextBuf(szBuf);
m_nEditID=FALSE;
}
}
void __fastcall TEditCardForm::m_HexEditChange(TObject *Sender)
{
char szBuf[30];
int nCardID;
if(m_nEditID==FALSE){
m_nEditID=TRUE;
m_HexEdit->GetTextBuf(szBuf,sizeof(szBuf));
nCardID=strtoul(szBuf,NULL,16);
if(nCardID!=0) wsprintf(szBuf,"%u",nCardID);
else szBuf[0]=0;
m_DecEdit->SetTextBuf(szBuf);
m_nEditID=FALSE;
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -