Форум: "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.042 c