Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];

Вниз

Как в EditBox заменить символ для ввода пароля?   Найти похожие ветки 

 
nester   (2005-10-28 11:44) [0]

Есть EditBox. У него установлено eoPassword. По умолчанию вместо вводимых символов выводится палочка | . Как заменить на свой символ - в часности обычную звездочку?
Пробовал перерисовывать ручками таким образом

procedure DrawAsterisks(c: integer; Canvas: PCanvas);
var
s: string;
i: integer;
begin
Canvas.FillRect(Canvas.ClipRect);
if (c > 0) then
begin
 s:= "";
 for i:= 1 to c do
  s:= s + "*";
 Canvas.TextOut(3,1, s+" ");
end;
end;

Это вызывалось с кавасом нужного эдита и числом звездочек.
Вызываю это на onPaint, onChange, onMouseMove, onMouseUp, onMouseDown.

Все выглядит очень хорошо, до тех пор пока пользователь не пытается выделить несколько символов сразу - тогда получается борода, - само выделение не видно, и проскакивают снова палочки.
Посоветуйте пожалуйста правильный способ.


 
ECM ©   (2005-10-28 12:40) [1]

procedure TxxxForm.xxxFormCreate(Sender: PObj);
...
 EditBox1.Perform(EM_SETPASSWORDCHAR ,Integer("*"),0);


 
nester   (2005-11-02 13:30) [2]

Спасииибо. Заработало, но с небольшим глюком.
Если положить два Эдита один под одним с одинаковыми настройками и у одного из них поставить в свойствах eoPassword, а за тем написать в обоих эдитах что-то то в парольном эдите звездочки будут заметно смещены правее, в отличии от обычного текста, никто не знает как это пофиксить?


 
ECM ©   (2005-11-02 15:01) [3]

У меня такой эффект не проявляется....KOL2.19+D6+W2K3
Вышлите минимальный проект, где это проявляется мне на мыло...


 
nester   (2005-11-02 18:57) [4]

Проблемма нашел в чем, она в   KOLXPMan.Если добовляю манифест - тогда появляется сдвиг вправо. Щас попробую прикрутить другой манифест


 
nester   (2005-11-02 19:26) [5]

Да, я проверил, этот глюк появляется при добавлении манифеста XP.
Даже если я создаю его как файл project1.exe.manifest
Вот сам манифест:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
 version="1.0.0.0"
 processorArchitecture="X86"
 name="CompanyName.ProductName.YourApp"
 type="win32"
/>
<description>Your application description here.</description>
<dependency>
 <dependentAssembly>
  <assemblyIdentity
   type="win32"
   name="Microsoft.Windows.Common-Controls"

version="6.0.0.0"
   processorArchitecture="X86"
   publicKeyToken="6595b64144ccf1df"
   language="*"
  />
 </dependentAssembly>
</dependency>
</assembly>

При этом пароль получается с отступом, а обычный текст без. Ктонибудь вышел из этой ситуации?


 
Vladimir Kladov   (2005-11-02 20:10) [6]

InitCommonControls ?


 
nester   (2005-11-03 11:22) [7]

Да, на инициализацию модуля ставлю InitCommonControls.
Балалайку. Не помогло. А можно какнибудь ручками сказать отступ нулевой?
Чтото вроде EM_SETINDENT нет?
Для чистоты эксперимента:
http://195.5.17.55/asttest.zip
Тут лежит пустой проект с манифестом и с екзешником. 24Кб.
В нем все наглядно видно.
Глюк наблюдается только если выставлена схема ХР.
Если манифест стереть - глюк исчезает.


 
nester   (2005-11-03 19:23) [8]

Решение нашел сам случайно.
Чтобы звездочки в теме XP не смещались нужно просто не ставить eoPassword а просто сделать
EditBox1.Perform(EM_SETPASSWORDCHAR ,Integer("*"),0);
при создании формы, тогда все работает и отступа не появляется.
Считаю дискуссию закрытой:)


 
Neutrin0   (2006-03-06 13:59) [9]

у кого есть исходники AST test? пожауйста поделитесь. icq 229559



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.049 c
6-1154796548
keni
2006-08-05 20:49
2006.12.24
авторизатор


2-1165478865
VitalZ
2006-12-07 11:07
2006.12.24
Работа с чужим приложением


2-1165372992
Myxa_0
2006-12-06 05:43
2006.12.24
Как можно выполнить код записанный в текстовом поле?


15-1165314816
ANB
2006-12-05 13:33
2006.12.24
ИНН и КПП


15-1164879083
inew
2006-11-30 12:31
2006.12.24
Признаки выхода в Интернет





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский