熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

DELPHI基礎教程:動態鏈接庫編程(二)[3]

2013-11-23 17:51:03  來源: Delphi編程 

  在口令設置窗口中為了確保用戶記住了設置的口令在用戶輸入並按回車鍵後要求用戶再次輸入進行確認只有用戶重新輸入的字符串與原設置口令相同口令設置窗口才能正常關閉 否則將原設置口令清空要求用戶再次輸入以上功能的實現在編輯框的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部分

[]  []  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/25205.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.