Содержание материала

 

Идея заключается в том, как сделать правое выравнивание текста в 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;

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить