2010-12-22 67 views
6

我建立一個名爲StringFullMemo,這將在TMemoBox顯示,但問題是,我試圖讓新行是這樣的:換行內一個字符串,並顯示在一個TMemoBox

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

我得到的是txtFirstMemo字符\n的內容,不是換行符,而是txtDetails的內容。我應該怎麼做才能使換行工作?

+0

重複... http://stackoverflow.com/questions/254407/how-do-i-include-a-newline-character-in-a-string-in-delphi – 2010-12-22 18:33:50

+0

如果它是重複的,那麼爲什麼答案完全不同? – 2010-12-26 12:38:11

+0

什麼是TMemoBox? – 2012-10-25 06:24:18

回答

20

解決方案是使用#13#10或更好,因爲塞爾塔克建議sLineBreak

FullMemo := txtFistMemo.Text + #13#10 + txtDetails.Text; 
FullMemo := txtFistMemo.Text + sLineBreak + txtDetails.Text; 
1

你不換行這樣的,你用符號#13:

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

#13是CR,#10是LF,有時它足以只使用CR,有時候(當例如編寫文本文件)使用#13#10。

3

使用

FullMemo := txtFistMemo.Text + #13#10 + txtDetails.Text 
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(''); 
0

你可以聲明是這樣的:

const 
CRLF = #13#10; 
LBRK = CRLF+ CRLF; 

在一個共同的單元,並在所有程序中使用它。這將非常方便。

相關問題