FMX Tmemo 自動改行


はくちゃん  2020-09-19 02:03:48  No: 149155  IP: 192.*.*.*

delphi 10.3 fmx の tmemoへの書き込みで、30文字の 入力数を超えたら 自動改行して次の 行へ 移るようにしたいのですが、 どのようにプログラミングしたらよろしいでしょうか?
よろしくお願い致します。

編集 削除
はくちゃん  2020-09-21 00:56:46  No: 149156  IP: 192.*.*.*

procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
  Shift: TShiftState);
var
LineCOunt:Integer;
begin
LineCount:=strtoInt(Memo1.Lines.Count.ToString);

if StrtoInt(Memo1.Lines.Text.Length.ToString)>=(30*LineCount) then
    begin
     **  ここに 改行キーの送信をセットしたいです!
    end;
end;

編集 削除
igy  2020-09-21 09:31:54  No: 149157  IP: 192.*.*.*

>LineCount:=strtoInt(Memo1.Lines.Count.ToString);
これは、
LineCount := Memo1.Lines.Count;
で、よさそうな・・

そして、
>if StrtoInt(Memo1.Lines.Text.Length.ToString)>=(30*LineCount) then 

if Memo1.Lines.Text.Length >= (30*LineCount) then 
で、よさそうな・・

ただ、OnKeyUpイベントのたびに、
>if StrtoInt(Memo1.Lines.Text.Length.ToString)>=(30*LineCount) then 
のIF文で処理するのは、正しくないような気もします。

編集 削除
KONNOYA  2020-09-24 07:07:30  No: 149178  IP: 192.*.*.*

ハズしているかもですが、
Memo1.WordWrapプロパティをTRUEに設定すれば、
入力して行った時にTMemo1の右端を超えると改行した様な感じになりますよ。
必ず30文字で改行する必要があるとか、必ず改行コードを入れる必要があるというのなら、
この方法は使えないですが。

プログラムから改行コードを挿入するには、
Memo1.Lines.Text := Memo1.Lines.Text + sLineBreak;
と、書けば改行コードが最後尾に追加されます。

編集 削除