Главная страница | назад





Article #17791: Justifying edit text.

 Question and Answer Database
FAQ2791D.txt Justifying edit text.
Category :VCL
Platform :All
Product :All 32 bit
Question:
How can I create a single line edit control that is right or
centered justified?
Answer:
You can use a TMemo component, since the TEdit component
does not directly support center and right justification.
In addition, you will need to prevent the user from pressing
the Enter, Ctrl-Enter, and a variety of arrow key combinations
to prevent more than one line to be added to the memo. This
can be accomplished by scanning the TMemo's text string for
carriage return and line feed characters and deleting them
during the TMemo's Change and KeyPress events. Optionally, you
could replace any carriage returns with spaces to accommodate
a multi-line paste operation.
Example:
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;
7/16/98 4:31:28 PM

Last Modified: 01-SEP-99