Як в поле введення пароля вводиться пароль відображати зірочками

Як в поле введення пароля вводиться пароль відображати зірочками?

Необхідно, щоб під час введення пароля пароль відображався зірочками - як це здійснити?

if InputQuery ( "Вікно введення пароля", "Введіть пароль:", P) then
if P = "555" then // Коли вводиться пароль - пароль видно
begin
# XA0; MainForm.Show;
end else
begin
ShowMessage ( "Ви ввели неправильний пароль!");
end;


> Volf_555 # XA0; (02.10.05 15:28)

Написати свій InputQuery.

Яким чином? Приведи код

і як же цей PasswordChar використовувати то?

Цей код не спрацьовує


> Volf_555 # XA0; (02.10.05 15:43) [2]
> Яким чином? Приведи код

хто заважає відкрити модуль Dialogs.pas, знайти в ньому функцію InputQuery, # XA0; і подивитися код самому?
А потім написати свій InputPwdQuery?
Тим більше, що в даному # XA0; конкретному випадку все "написання" можна звести до копіювання пари функцій з TDialogs # XA0; в свій модуль, опису пари строкових констант і вписування в код фунции рядки PasswordChar: = "*"; (В тому місці, де створюється TEdit).
Заодно дізнаєтеся, як створити форму в рантайм.

Простий приклад (за Вас код писати ніхто не буде - тому все спрощено)
program Project1;

uses
# XA0; Forms,
# XA0; Unit1 in "Unit1.pas",
# XA0; Unit2 in "Unit2.pas";

begin
if not InputPwdQuery ( "Вікно введення пароля", "Введіть пароль:", P) then exit;
# XA0; Application.Initialize;
# XA0; Application.CreateForm (TForm1, Form1);
# XA0; Application.Run;
end.

interface
uses Windows, Messages, SysUtils, CommDlg, Classes, Graphics, Controls,
# XA0; Forms, StdCtrls;

function InputPwdQuery (const ACaption, APrompt: string;
# XA0; var Value: string): Boolean;

function GetAveCharSize (Canvas: TCanvas): TPoint;
. Скопійовано з Dialogs.pas

function InputPwdQuery (const ACaption, APrompt: string;
# XA0; var Value: string): Boolean;
. Скопійовано з Dialogs.pas
і виправлене як потрібно

File -> New -> Other. -> Dialogs -> Password Dialog

Хлопці, що ви паритеся. Є більш витончений вихід:

Якщо введення пароля йде в поле Edit, змініть властивість PasswordChar на значення *. і у вас при введенні пароля все буде відображатися зірочками.

Але це спрацює тільки якщо діалог пароля сконструйований як окрема форма з полем Edit, а не через код програми. if InputQuery ( "Вікно введення пароля", "Введіть пароль:", P) then.

ХЛОПЦІ, їсть інший спосіб, але він вимагає побудова діалогу пароля як нової форми програми, де є поле Edit і дві кнопки - ок і cancel.

А чим ця форма завадить.

У нас кількість створюваних форм в проекті не обмежена. Та й строго під потреби підходить.

Нічого не маю проти. Тільки незнання законів фізики ні в якій мірі не звільняє від їх неухильне їх дотримання. Час тітоньок, які пройшли х-тижневі комп'ютерні курси якщо і не пройшло, то наближається до заходу. Людина (я маю на увазі Volf_555) хоче з якихось міркувань закрити вводиться пароль. Використовуючи PasswordChar він піддає себе потенційному ризику (про це було сказано вище), оскільки іншій людині не буде потрібно навіть дивитися код програми, не кажучи вже про інші дії. Тому у мене з'явилося бажання постелити першій людині (оскільки він творить) свого роду соломку. Насправді це тільки соломинка. Тому раджу йому вивчити хоча б поверхово тему шифрування. Але це вже інша тема.

Пам'ять: 0.76 MB
Час: 0.05 c