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

📄 editcard.cpp

📁 停车场用
💻 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 + -