Форум: "Основная";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];
ВнизTEdtit and ES_PASSWORD Найти похожие ветки
← →
lilo (2005-07-16 19:01) [0]я знаю, что во многих программах, в XP, в окнах с паролями вместо звёздочек применяют своего рода чёрные кружки, ну символы такие.
попытки применить такие же в своём проекте приводит к краху всей идеи. нет, сразу скажу, что удалось, но... фигня какая-то.
сделал так, просто у меня есть наследник TEdita и я такое приписалprocedure TMyEdit.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style := Params.Style or ES_PASSWORD;
end;
и всё шоколадно, показывает то, что нужно, но! он это всегда показывает, а как мне сделать такую штуку, только в том случае, когда мне нужно спрятать пароль, а потом допустим показать, вернув исходное положение?
пробовал: if passwordchar <> #0 then "это самое"^^ , но что-то не получается.. =(
что посоветуете?
← →
begin...end © (2005-07-16 19:32) [1]> lilo (16.07.05 19:01)
Если наследник был создан только для управления режимом показа пароля, то он (наследник) не нужен. Если у стандартного TEdit установить свойство PasswordChar не равным #0, то стиль ES_PASSWORD добавится (при создании экземпляра) автоматически. Чтобы менять режим показа, можно использовать сообщение EM_SETPASSWORDCHAR. Посмотрите в модуле StdCtrls реализацию метода TCustomEdit.SetPasswordChar.
← →
default © (2005-07-16 19:37) [2]
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.PasswordChar := #0
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.PasswordChar := #65 // #X, X<>0
end;
просто работай со свойством PasswordChar
← →
lilo (2005-07-18 10:32) [3]всё клёво, но я так и не догнал, как мне вместо допустим звёздочек * впихнуть круглые символы, кругляшки как во всех окнах с пассами в XP. я в ужасе, перепробовал всё что мог..
← →
Amido (2005-07-25 12:39) [4]2lilo
Всё, что Вам нужно, на сколько я понимаю - это получить номер символа ● и присвоить его свойству PasswordChar.
Производите банальную операцию:
1) кидаете на форму Button1, Memo1, Edit1;
2) пишите:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i := 0 to 255 do
Memo1.Lines.Add(Inttostr(i)+ " " +char(i))
end;
3) в Мемо1 получаете:
...
146 ’
147 “
148 ”
149 •
150 –
151 —
...
Вот он, Ваш родимый кружечек под номером 149 =]
4) Далее в Object Inspector для Edit1.PasswordChar прописываете #149 или же программно, как описал default © - ставите и убираете... ставите и убираете...
P.S. Не ищите сложных решений =]
...Params.Style := Params.Style or ES_PASSWORD;... мда %)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c