Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.14;
Скачать: CL | DM;

Вниз

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

Всё, что Вам нужно, на сколько я понимаю - это получить номер символа &#9679; и присвоить его свойству 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.037 c
1-1122025634
Destroyer
2005-07-22 13:47
2005.08.14
Проблема с вызовом переменной из другого юнита.


14-1121230858
cvg
2005-07-13 09:00
2005.08.14
Где взять mysql.dcu?


1-1122294493
Viktop
2005-07-25 16:28
2005.08.14
Как передать параметры в поток?


14-1121840609
Ega23
2005-07-20 10:23
2005.08.14
С днем рождения! 20 июля


4-1118655501
ATarget
2005-06-13 13:38
2005.08.14
остановить драйвер