Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
3-1120601048
Loki2005
2005-07-06 02:04
2005.08.14
Целесообразное использование БД


1-1122372526
serg128
2005-07-26 14:08
2005.08.14
Как поменять цвет строки в TListBox?


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


14-1122007789
TButton
2005-07-22 08:49
2005.08.14
Надпись в маршрутке


14-1122016086
Дмитрий999
2005-07-22 11:08
2005.08.14
Запретить обьявление экземпляра класса




   Наверх