Как создать эквивалент TEdit

Вопрос:

Как создать эквивалент TEdit но только с выравниваением вводимого текста по центру или по правой стороне?

Ответ:

TEdit не поддерживает
выравниваение текста по центру и по правой стороне – лучше использовать компонент
TMemo. Вам понадобится запретить пользователю нажимать Enter, Ctrl-Enter и всевозможные
комбинации клавиш со стрелками, чтобы избежать появления нескольких сторк в
Memo. Этого можно добиться и просматривая содержимое текста в TMemo в поисках
кода возврата каретки (13) и перевода строки(10) на событиях TMemo Change и
KeyPress. Можно также заменять код возврата каретки на пробел – для того чтобы
позволять вставку из буфера обмена многострочного текста в виде одной строки.

Пример:
procedure TForm1.FormCreate(Sender: TObject);
begin
	Memo1.Alignment := taRightJustify;
	Memo1.MaxLength := 24;
	Memo1.WantReturns := false;
	Memo1.WordWrap := false;
end;

procedure MultiLineMemoToSingleLine(Memo : TMemo);
var
	t : string;
begin
	t := Memo.Text;
	if Pos(#13, t) > 0  then
		begin
			while Pos(#13, t) > 0 do
				delete(t, Pos(#13, t), 1);
			while Pos(#10, t) > 0 do
				delete(t, Pos(#10, t), 1);
			Memo.Text := t;
		end;
end;

procedure TForm1.Memo1Change(Sender: TObject);
begin
	MultiLineMemoToSingleLine(Memo1);
end;

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
	MultiLineMemoToSingleLine(Memo1);
end;

Комментариев Нет.

Написать Ответ

Вы должны войти чтобы оставить комментарий.