Text positioning in Memo

Posted in Components

We will find spaces and tab symbols, when somebody press Enter-key. And we will add this symbols to the new string in Memo.

procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  LineNum: Integer;
  Str: string;
  i: Integer;
begin
  StrDop:='';
  if Key=13 then
  begin
    LineNum:=Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0);
    Str:=Memo1.Lines[LineNum];
    i:=1;
    if Str<>'' then
    begin
      while (Str[i]=' ')or(Str[i]=#9) do
        Inc(i);
      StrDop:=Copy(Str,1,i-1);
    end;
  end;
end;

procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  LineNum: Integer;
begin
  if StrDop<>'' then
  begin
    LineNum:=Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0);
    Memo1.Lines[LineNum]:=Memo1.Lines[LineNum]+StrDop;
  end;
end;