Добрый день!
1. СИТУАЦИЯ
Мне понадобилось создать потомка TCustomMaskEdit, но со стилем ES_MULTILINE.
Данный стиль - это единственная (судя по MSDN) созможность заставить класс EDIT (а именно на основе этого класса windows сделан TCustomMaskEdit, см. TCustomEdit.CreateParams) работать так, чтобы только часть едита была под текст, а не вся область (т.е. чтобы можно было едиту слать EM_SETRECTNP и EM_SCROLLCARET - см. подробнее в grids.pas - я свое время писал по мотивам этого модуля).
Мне нужна непрорисовываемая область для того, чтобы там самому нарисовать кнопочку для внешнего редактора (маленькая кнопочка с тремя точками при нажатии на которую вызывается диалоговое окошко).
Одним словом, мне нужно:
а. Чтобы была маска ввода.
б. И была кнопочка для внешнего редактора.
2. ПРОБЛЕМЫ
Проблемы заключаются в том, что неверно происходит позиционирование при клике мыши на моем новом едите.
Кликаешь на первый символ, а позиционирование происходит на +3 символа.
Вот ссылка на архив с простейшим
http://exchange.vkkb.ru/_tda/MaskEditError.zip Как поставить:
а. Из папки Package скомпилировать и установить пакет Package1.dpk. Добавить закладка "Timokhov" с компонентом TMaskEdit.
б. Из папки Project скомпилировать и запустить Project1.dproj
Как увидеть ошибку:
а. При старте программы фокус будет на TEdit1.
б. Кликните мышкой на второе поле ввода на первом символе.
Ожидаемый результат: выделен первый символ.
Фактический результат: выделен четвертый символ.
Помогите, пожалуйста, справиться с проблемой!
(дельфи 2007, XP sp 3)