Как сместить позицию курсора в элементе редактирования?

Я создаю пользовательский элемент управления для редактирования, который состоит из добавления значка слева и кнопки со значком справа, как внутри элемента редактирования. Это требует смещения начальной точки текста (и курсора) вправо на X пикселей. Это также означает, что мне нужно ограничить ширину текста, чтобы освободить место для кнопки справа. Намерение состоит в том, чтобы предоставить как пользовательский значок слева, например, в браузере, так и кнопку "X" справа, чтобы очистить содержимое элемента управления редактирования.

Как компенсировать Rect где нарисовать текст и курсор в TCustomEdit потомок?

1 ответ

Решение

Если вы используете более новую версию Delphi, уже должен быть элемент управления TButtonedEdit, который может выполнять вашу работу.

Если нет, я думаю, что вы можете отправить сообщение EM_SETMARGINS в ваш TCustomEdit, чтобы установить левое и правое поле.

SendMessage(CustomEdit.Handle, EM_SETMARGINS, EC_LEFTMARGIN or EC_RIGHTMARGIN, MakeLong(LeftMargin, RightMargin));
Другие вопросы по тегам