Главная страница
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.036 c
1-1122327617
Интер
2005-07-26 01:40
2005.08.14
Как получить адрес папки "Temporary Internet Files" ?


3-1120564635
alex_***
2005-07-05 15:57
2005.08.14
получить результат выполнения dynamic sql кроме кода ошибки


3-1120470799
-=snoop=-
2005-07-04 13:53
2005.08.14
работа с DataSource1.DataSet.Delete


11-1104324169
Boguslaw
2004-12-29 15:42
2005.08.14
IDE for KOL once again


10-1099556750
sands
2004-11-04 11:25
2005.08.14
Callbacks &amp; CORBA