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

Вниз

Как в 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 вся ветка

Текущий архив: 2006.12.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.107 c
1-1163162706
allrussia
2006-11-10 15:45
2006.12.24
Не могу заставить работать 2 компонента одновременно


6-1149957839
Max.66RUS
2006-06-10 20:43
2006.12.24
Автоматическая отправка E-mail...


4-1155739454
webpauk
2006-08-16 18:44
2006.12.24
Проверка строковой переменной


2-1165573494
dest
2006-12-08 13:24
2006.12.24
Вычленить имя конечной папки


15-1165016358
lookin
2006-12-02 02:39
2006.12.24
Как вам Foxtrot Uniform Charlie Kilo?