delphi 10.3 fmx の tmemoへの書き込みで、30文字の 入力数を超えたら 自動改行して次の 行へ 移るようにしたいのですが、 どのようにプログラミングしたらよろしいでしょうか?
よろしくお願い致します。
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;
>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文で処理するのは、正しくないような気もします。
ハズしているかもですが、
Memo1.WordWrapプロパティをTRUEに設定すれば、
入力して行った時にTMemo1の右端を超えると改行した様な感じになりますよ。
必ず30文字で改行する必要があるとか、必ず改行コードを入れる必要があるというのなら、
この方法は使えないですが。
プログラムから改行コードを挿入するには、
Memo1.Lines.Text := Memo1.Lines.Text + sLineBreak;
と、書けば改行コードが最後尾に追加されます。
ツイート | ![]() |