で表示されるという名前のを作成String
していますが、問題は、次のような改行を作成しようとしていることです。FullMemo
TMemoBox
FullMemo := txtFistMemo.Text + '\n' + txtDetails.Text
私が得たのは、改行ではなくtxtFirstMemo
文字の内容と、の内容です。改行を機能させるにはどうすればよいですか?\n
txtDetails
解決策は、Sertac がsLineBreakを提案したように #13#10 以上を使用することです。
FullMemo := txtFistMemo.Text + #13#10 + txtDetails.Text;
FullMemo := txtFistMemo.Text + sLineBreak + txtDetails.Text;
よりプラットフォームに依存しないソリューションはTStringList
.
var
Strings: TStrings;
begin
Strings := TStringList.Create;
try
Strings.Assign(txtFirstMemo.Lines); // Assuming you use a TMemo
Strings.AddStrings(txtDetails.Lines);
FullMemo := Strings.Text;
finally
Strings.Free;
end;
end;
空の改行を追加するには、次を使用できます。
Strings.Add('');
使用する
FullMemo := txtFistMemo.Text + #13#10 + txtDetails.Text
次のように宣言できます。
const
CRLF = #13#10; //or name it 'Enter' if you want
LBRK = CRLF+ CRLF;
共通のユニットで、すべてのプログラムで使用します。本当に重宝します。今、20年後、私は何千もの場所でCRLFを使用しています!
FullMemo := txtFistMemo.Text + CRLF + txtDetails.Text
重要
Windowsでは、Enterの正しい形式は、CRだけでなく、他の人が提案しているLFだけではなくCRLFです。たとえば、ファイルに適切な入力がない場合、Delphi IDe(Windowsアプリ)は本当に怒ってしまいます(CRLF):DelphiXE-
すべての青い点が1行上にシフトされます
このような改行を作成せず、シンボル #13 を使用します。
FullMemo := txtFistMemo.Text + #13 + txtDetails.Text
+ Chr(13) + 'some more text'#13.
#13 は CR、#10 は LF です。CR だけで十分な場合もあれば、(たとえばテキスト ファイルを書き込む場合) #13#10 を使用する場合もあります。