Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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

Всё, что Вам нужно, на сколько я понимаю - это получить номер символа &#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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.013 c
14-1122027262
boriskb
2005-07-22 14:14
2005.08.14
Суслик высокопарящий.


1-1122467772
Stanislav
2005-07-27 16:36
2005.08.14
Размеры TWinControl


1-1122419348
Mangoost
2005-07-27 03:09
2005.08.14
выбор на listbox-e


1-1122280587
LLi kn par
2005-07-25 12:36
2005.08.14
Как сд-ть так чтобы ф-лы бфли скрытыми, системными и т. д.


3-1120636072
Lex_!
2005-07-06 11:47
2005.08.14
Реиндексация таблиц





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский