Идея заключается в том, как сделать правое выравнивание текста в TEdit, не прибегая к написанию нового компонента.
Для этого можно воспользоваться канвасом. Так как TEdit не имеет канваса, то сперва мы создадим TControlCanvas а затем, прикрепим TEdit к этому канвасу.
Теперь нам доступны все свойства и методы TControlCanvas, поэтому мы спокойно можем настраивать в нём текст. Ниже приведёна процедура, реализующая всё вышесказанное.
Code: |
procedure RJustifyEdit(var ThisEdit : TEdit); var Left, Width : Integer; GString : String; Rgn : TRect; TheCanvas : TControlCanvas; begin TheCanvas := TControlCanvas.Create; try TheCanvas.Control := ThisEdit; GString := ThisEdit.Text; Rgn := ThisEdit.ClientRect; TheCanvas.FillRect(Rgn); Width := TheCanvas.TextWidth(GString); Left := Rgn.Right - Width - 1; TheCanvas.TextRect(Rgn, Left, 0, GString); finally TheCanvas.Free; end ; end; |
- << Назад
- Вперёд
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!