Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

InputBox для ввода пароля

Delphi , Синтаксис , Пароли

InputBox для ввода пароля

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

const
   InputBoxMessage = WM_USER + 200;

 type
   TForm1 = class(TForm)
     Button1: TButton;
     procedure Button1Click(Sender: TObject);
   private
     procedure InputBoxSetPasswordChar(var Msg: TMessage); message InputBoxMessage;
   public
   end;

 var
   Form1: TForm1;

 implementation

 {$R *.DFM}

 procedure TForm1.InputBoxSetPasswordChar(var Msg: TMessage);
 var
   hInputForm, hEdit, hButton: HWND;
 begin
   hInputForm := Screen.Forms[0].Handle;
   if (hInputForm <> 0) then
   begin
     hEdit := FindWindowEx(hInputForm, 0, 'TEdit', nil);
     { 
      // Change button text: 
      hButton := FindWindowEx(hInputForm, 0, 'TButton', nil); 
      SendMessage(hButton, WM_SETTEXT, 0, Integer(PChar('Cancel'))); 
    }
     SendMessage(hEdit, EM_SETPASSWORDCHAR, Ord('*'), 0);
   end;
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 var
   InputString: string;
 begin
   PostMessage(Handle, InputBoxMessage, 0, 0);
   InputString := InputBox('Input Box', 'Please Enter a Password', '');
 end;

Программный код, который вы предоставили, - это приложение Delphi, созданное с использованием Windows API для поиска и манипуляции контролем редактирования и кнопкой в окне ввода пароля.

Вот подробное описание того, что каждый раздел кода делает:

Объявления констант и типов

  • InputBoxMessage определено как WM_USER + 200, что является уникальным сообщением для общения с окном ввода пароля.
  • Тип объявления TForm1 определяет класс формы с двумя компонентами: Button1 (кнопка TButton) и приватным методом InputBoxSetPasswordChar.

Объявления переменных

  • Form1 объявлено как экземпляр типа TForm1.

Секция реализации

  • Процедура InputBoxSetPasswordChar вызывается, когда окно ввода пароля получает сообщение InputBoxMessage. Эта процедура находит контролл редактирования и кнопку в окне ввода пароля, изменяет текст кнопки на "Отмена" и устанавливает символ пароля на '*'.
  • Процедура Button1Click вызывается, когда кнопка на форме кликнута. Она отправляет сообщение в окно ввода пароля с помощью функции PostMessage, что будет вызывать процедуру InputBoxSetPasswordChar.

Альтернативное решение

Если вы хотите упростить код и избежать использования функций Windows API, таких как FindWindowEx и SendMessage, можно использовать встроенную поддержку Delphi для создания окна ввода пароля. Вот пример, как можно модифицировать код:

procedure TForm1.Button1Click(Sender: TObject);
var
  InputString: string;
begin
  InputString := InputBox('Input Box', 'Please Enter a Password', '');
end;

function GetPassword: string;
begin
  Result := InputBox('Input Box', 'Please Enter a Password', '');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Password: string;
begin
  Password := GetPassword();
   // Do something with the password
end;

В этом примере мы определили отдельную функцию GetPassword, которая использует встроенную функцию Delphi InputBox для получения пароля от пользователя. Затем мы вызываем эту функцию в процедуре Button1Click для получения пароля и выполнения с ним каких-либо действий.

Это решение более простое и легче поддерживать, чем использование функций Windows API, но может не предоставлять такое же управление над видом и поведением окна ввода пароля.

В статье описывается пример создания интерфейса для ввода пароля в приложении на языке Delphi с использованием сообщения WM_USER + 200 и метода EM_SETPASSWORDCHAR.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Пароли ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 06:02:56/0.0034518241882324/0