Страница 1 из 1
скрыть пароль звездочками
Добавлено: 25 авг 2005, 21:35
Duncon
Люди, как при вводе пороля скрыть его звездочками????
test.dpr
Код: Выделить всё
program X;
{%File 'ModelSupport\Unit1\Unit1.txvpck'}
{%File 'ModelSupport\default.txvpck'}
uses
Forms,
Dialogs,
Controls,
Unit1 in 'Unit1.pas' {Form1},
{$R *.res}
var
Passwrd: String;
begin
if InputQuery(' Duncon','введи пароль', Passwrd) then
if Passwrd = 'k' then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end
else
MessageDlg('Неправильный пароль, приложение будет закрыто.', mtError, [mbok], 0);
end.
Добавлено: 26 авг 2005, 00:36
Игорь Акопян
а что мешает своять свою формочку и запустить её самой первой?
все наследники TCustomEdit имеют свойство PasswordChar, который, будучи установлен в ненулевое значение (#0), рисует при вводе указанный символ
Добавлено: 26 авг 2005, 11:34
Duncon
Ну это можно только не интересно, хочеться именно этот скрипт замучить...
Добавлено: 29 авг 2005, 11:12
Игорь Акопян
в InputQuery не скроешь. Могу предложить создать формочку о которой я писал выше в рунтайме - но это изврат, имхо

Добавлено: 29 авг 2005, 14:21
Duncon
Код: Выделить всё
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);
{
hButton := FindWindowEx(hInputForm, 0, 'TButton', nil);
SendMessage(hButton, WM_SETTEXT, 0, Integer(PChar('Cancel')));
}
SendMessage(hEdit, EM_SETPASSWORDCHAR, Ord('*'), 0);
end;
end;
procedure TForm1.Create(Sender: TObject);
var
InputString: string;
begin
PostMessage(Handle, InputBoxMessage, 0, 0);
InputString := InputBox('Input Box', 'Please Enter a Password', '');
end;
Говорю же не интересно...
Добавлено: 23 сен 2005, 07:26
Dimas
Пример в котором компоненту класса TEdit или Edit с координатами Pos маска ввода устанавливается в '*'.
Код: Выделить всё
procedure SetEditMask(pos: TPoint);
var
Wnd : HWND;
a: LongBool;
lpClassName: array [0..$FF] of Char;
begin
Wnd := WindowFromPoint(pos);
//Получаем ссылку на компонент находящийся на координатах
GetClassName (Wnd, lpClassName, $FF);
//Получаем класс компонента
if ((strpas(lpClassName) = 'TEdit') or (strpas(lpClassName) = 'EDIT')) then
//Если это TEdit или Edit
PostMessage (Wnd, EM_SETPASSWORDCHAR, 42, 0);
//Посылаем сообщение PASSWORDCHAR := 42 (код звёздочки)
InvalidateRect(Wnd,nil,a);
//Перерисуем окно
end;
Нет ни чего ни возможного, бывает только очень сложно.
Добавлено: 12 июл 2006, 16:11
Madshall
У компонента TEdit есть поле PasswordChar. Ставишь там хоть звездочку, хот пимпочку-пофиг, будет закрывать твой пароль.
Добавлено: 12 июл 2006, 19:19
Duncon
Я уже не помню чем я страдал 2 года назад, но вопрос здесь явно стоял конкретно по представленному примеру (1 пост)...
зы Закройте или убейте тему...