Конференция "WinAPI" » PasswordChar для TEdit [D5, WinXP]
 
  • harisma © (10.09.09 19:27) [0]
    Есть такая пропертя у TEdit, как PasswordChar. Если ее значение отличное от #0, то текст в этом контроле будет отображаться этим символом. Собственно все вышесказанное - не секрет для программистов.

    Мой компонент напрямую порожден от TCustomEdit.
    Согласно исходникам, при установке PasswordChar генерируется и отсылается сообщение EM_SETPASSWORDCHAR (метод SetPasswordChar)

    Проблема в том, что на некоторых компьютерах почему-то не происходит замены введенного текста в эдите на символы PasswordChar. Может кто знает причину?

    Второй момент - я нигде не нашел исходника, как обрабатывается это сообщение и каким образом меняется отображение введенного текста на символы пароля.
  • Terminal Name (10.09.09 19:39) [1]
    > Мой компонент напрямую порожден от TCustomEdit


    > Проблема в том, что на некоторых компьютерах ...

    А как себя ведет стандарный TEdit на этих компьютерах?
    Если нормально, то следует поискать причины в твоем компоненте
  • harisma © (11.09.09 14:09) [2]
    Обычный дельфийский TEdit работает нормально.
    Какая может быть причина в моем компоненте, если именно эту пропертю я не трогал и она напрямую наследуется от предка?
  • clickmaker © (11.09.09 14:12) [3]
    > как обрабатывается это сообщение и каким образом меняется
    > отображение введенного текста на символы пароля

    это уже в недрах виндозного контрола класса Edit.
    Скорей всего, косяк именно в унаследованном компоненте
  • harisma © (11.09.09 14:37) [4]
    А можно как-то по другому написать обработчик сообщения EM_SETPASSWORDCHAR в своем компоненте? Но для этого надо знать, как оно в недрах винды обрабатывается :(
  • clickmaker © (11.09.09 14:50) [5]
    а зачем нужен свой обработчик?
    к тому же его обрабатывает не компонент, а оконная процедура виндозного контрола. Компонент шлет ему это сообщение при установке свойства.
  • harisma © (11.09.09 15:09) [6]

    > Компонент шлет ему это сообщение при установке свойства.

    Я это понял. Просто было интересно, как оно сделано и может просто переписать у себя.

    Просто если бы был косяк в самом наследованном компоненте, то не отображалось бы ни на одной машине, а так только на нескольких - странно все это :(
  • Игорь Шевченко © (11.09.09 19:54) [7]
    телепатов ищешь ? Не то место, попробуй в другом
 
Конференция "WinAPI" » PasswordChar для TEdit [D5, WinXP]
Есть новые Нет новых   [134434   +27][b:0][p:0]