-
Есть такая пропертя у TEdit, как PasswordChar. Если ее значение отличное от #0, то текст в этом контроле будет отображаться этим символом. Собственно все вышесказанное - не секрет для программистов.
Мой компонент напрямую порожден от TCustomEdit.
Согласно исходникам, при установке PasswordChar генерируется и отсылается сообщение EM_SETPASSWORDCHAR (метод SetPasswordChar)
Проблема в том, что на некоторых компьютерах почему-то не происходит замены введенного текста в эдите на символы PasswordChar. Может кто знает причину?
Второй момент - я нигде не нашел исходника, как обрабатывается это сообщение и каким образом меняется отображение введенного текста на символы пароля.
-
> Мой компонент напрямую порожден от TCustomEdit
> Проблема в том, что на некоторых компьютерах ...
А как себя ведет стандарный TEdit на этих компьютерах?
Если нормально, то следует поискать причины в твоем компоненте
-
Обычный дельфийский TEdit работает нормально.
Какая может быть причина в моем компоненте, если именно эту пропертю я не трогал и она напрямую наследуется от предка?
-
> как обрабатывается это сообщение и каким образом меняется
> отображение введенного текста на символы пароля
это уже в недрах виндозного контрола класса Edit.
Скорей всего, косяк именно в унаследованном компоненте
-
А можно как-то по другому написать обработчик сообщения EM_SETPASSWORDCHAR в своем компоненте? Но для этого надо знать, как оно в недрах винды обрабатывается :(
-
а зачем нужен свой обработчик?
к тому же его обрабатывает не компонент, а оконная процедура виндозного контрола. Компонент шлет ему это сообщение при установке свойства.
-
> Компонент шлет ему это сообщение при установке свойства.
Я это понял. Просто было интересно, как оно сделано и может просто переписать у себя.
Просто если бы был косяк в самом наследованном компоненте, то не отображалось бы ни на одной машине, а так только на нескольких - странно все это :(
-
телепатов ищешь ? Не то место, попробуй в другом