8

で表示されるという名前のを作成Stringしていますが、問題は、次のような改行を作成しようとしていることです。FullMemoTMemoBox

FullMemo := txtFistMemo.Text + '\n' + txtDetails.Text

私が得たのは、改行ではなくtxtFirstMemo文字の内容と、の内容です。改行を機能させるにはどうすればよいですか?\ntxtDetails

4

5 に答える 5

26

解決策は、Sertac がsLineBreakを提案したように #13#10 以上を使用することです。

FullMemo := txtFistMemo.Text + #13#10 + txtDetails.Text;
FullMemo := txtFistMemo.Text + sLineBreak + txtDetails.Text;
于 2010-12-22T15:35:07.477 に答える
4

よりプラットフォームに依存しないソリューションは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('');
于 2010-12-22T15:39:42.060 に答える
3

使用する

FullMemo := txtFistMemo.Text + #13#10 + txtDetails.Text
于 2010-12-22T15:36:02.220 に答える
1

次のように宣言できます。

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行上にシフトされます

于 2011-01-02T18:26:54.737 に答える
0

このような改行を作成せず、シンボル #13 を使用します。

FullMemo := txtFistMemo.Text + #13 + txtDetails.Text
    + Chr(13) + 'some more text'#13.

#13 は CR、#10 は LF です。CR だけで十分な場合もあれば、(たとえばテキスト ファイルを書き込む場合) #13#10 を使用する場合もあります。

于 2010-12-22T15:35:08.623 に答える