在口令设置窗口中为了确保用户记住了设置的口令在用户输入并按回车键后要求用户再次输入进行确认只有用户重新输入的字符串与原设置口令相同口令设置窗口才能正常关闭 否则将原设置口令清空要求用户再次输入以上功能的实现在编辑框的OnKeyPress事件处理过程中
procedure TSetPassWordFormEditKeyPress(Sender: TObject; var Key: Char)
begin
if Edittext = then Exit;
if Key = # then
begin
if Verified then
if StrPas(PassWord) = Edittext then
begin
OKBtnEnabled := True;
EditEnabled := False;
OKBtnSetFocus;
end
else
begin
Verified := False;
MessageDlg(PassWord is InValidmtWarning[mbOK])
Edittext := ;
PassWord := ;
LabelCaption := Please Input PassWord:;
end
else
begin
Verified := True;
StrPCopy(PassWordEdittext)
Edittext := ;
Labelcaption := Please Verify PassWord:;
end;
Key := #;
end;
end;
口令检查窗口的实现相对简单只定义了一个输出函数GetPassWord用于生成口令检查窗口并返回口令检查的结果
function GetPassword(Password: PChar) Boolean;
var
GetPasswordForm: TGetPasswordForm;
begin
Result := False;
GetPasswordForm := TGetPasswordFormCreate(Application)
try
with GetPasswordForm do
if ShowModal = mrOK then
if UpperCase(EditText) <> StrPas(StrUpper(Password)) then
MessageDlg(Invalid Password mtWarning [mbOK] )
else
Result := True;
finally
PasswordFormFree;
end;
end;
PassWord为输入的参数不能为空由调用以上函数的程序负责维护
窗口中用户输入口令时回显在屏幕上的字符由编辑框的PassWordChar属性确定
在DLLs的工程文件中把两个输出函数写到exports子句中
library PassForm;
uses
GetPass in GETPASSPAS {PasswordForm}
Setpass in SETPASSPAS {SetPassWordForm};
exports
GetPasswordSetPassWord;
begin
end
Delphi应用程序调用重用窗体
在Delphi应用程序中调用重用窗体首先必须包含passformdll的两个输出函数
function GetPassword(Password: PChar) Boolean;
far; external c:\dlls\PassForm;
function SetPassword(PassWord: PChar) Boolean;
far; external c:\dlls\PassForm;
这位于程序单元的implementation部分
[] [] [] []