📄 editpassword.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "EditPassword.h"
#include "EditDlg.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
//设置文本
static void SetEditText(TEditPasswordForm *se,char *pszSour,char *pszTitle);
//---------------------------------------------------------------------------
__fastcall TEditPasswordForm::TEditPasswordForm(TComponent* Owner)
: TForm(Owner)
{
}
//设置新密码
int ReworkPassword(TObject *Owner,char *pszSour,char *pszTitle)
{
TEditPasswordForm *se;
int rc;
rc=FALSE;
se = new TEditPasswordForm((TComponent*)Owner);
if(se!=NULL){
SetEditText(se,pszSour,pszTitle);
rc=se->ShowModal();
if(rc==mrOk)rc=TRUE;
delete se;
}
return(rc);
}
//设置文本
void SetEditText(TEditPasswordForm *se,char *pszSour,char *pszTitle)
{
if(pszTitle!=NULL)se->SetTextBuf(pszTitle);
se->m_OldEdit->Text="";
se->m_NewEdit->Text="";
se->m_OkEdit->Text="";
se->m_pszSour=pszSour;
se->m_nCount=0;
}
//---------------------------------------------------------------------------
void __fastcall TEditPasswordForm::m_OkButClick(TObject *Sender)
{
static char *pszText= "密码错误!";
char szText[3][20],*pszSour;
int i,rc;
m_OldEdit->GetTextBuf(szText[0],sizeof(szText[0]));
m_NewEdit->GetTextBuf(szText[1],sizeof(szText[0]));
m_OkEdit->GetTextBuf(szText[2],sizeof(szText[0]));
rc =TRUE;//新密码与确认密码比较
if(lstrcmpi(szText[1],szText[2])!=0) rc = FALSE;
//原密码与初始密码比较
if(rc && lstrcmpi(m_pszSour,szText[0])!=0)
rc=FALSE;
if(rc){
lstrcpy(m_pszSour,szText[1]);
ModalResult=mrOk;
}
else if(m_nCount++<3){
MessageBeep(MB_ICONHAND);
Application->MessageBox(pszText,GetPasswordTitle(),
MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
m_NewEdit->SetFocus();
ModalResult=0;
}
else ModalResult=mrCancel;
}
//获取密码标题
char *GetPasswordTitle(void)
{
static char szTitle[]="密码管理";
return(szTitle);
}
//检查一个密码输入
int CheckOnePassword(TObject *Owner,char *pszSour,char *pszTitle)
{
static char pszText1[]= "请输入操作密码:",
pszText2[]= "对不起! 密码错误!";
EDITPARAM pe;
int i,rc;
char szBuf[30];
szBuf[0]=0;
ZeroMemory(&pe,sizeof(pe));
if(pszTitle==NULL)pszTitle=pszText1;
pe.pszText = pszTitle;
pe.pszTitle = GetPasswordTitle();
pe.pszBuf = szBuf;
pe.cbSize = sizeof(szBuf)-1;
pe.nFlag=0x080;
for(i=0;;i++){
rc=EditTextStr(Owner,&pe);
if(rc==FALSE)break; //没有输入
else if(lstrcmpi(pszSour,szBuf)==0)break; //密码正确
if(i<3){
MessageBeep(MB_ICONHAND);
if(Application->MessageBox(pszText2,GetPasswordTitle(),
MB_RETRYCANCEL|MB_ICONINFORMATION|MB_APPLMODAL)
!=IDRETRY)
break;
}
else break;
}
return(rc);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -