我想创建一个跨越多行的字符串,以分配给Label Caption属性.这是如何在Delphi中完成的?
在System.pas(自动使用)中定义了以下内容:
const sLineBreak = {$IFDEF LINUX} AnsiChar(#10) {$ENDIF} {$IFDEF MSWINDOWS} AnsiString(#13#10) {$ENDIF};
这是来自Delphi 2009(注意使用AnsiChar和AnsiString).(我添加了换行.)
因此,如果要进行TLabel换行,请确保将AutoSize设置为true,然后使用以下代码:
label1.Caption := 'Line one'+sLineBreak+'Line two';
自从引入sLineBreak以来,所有版本的Delphi都可以使用,我相信它是Delphi 6.
这是一个更短的方法:
my_string := 'Hello,'#13#10' world!';
my_string := 'Hello,' + #13#10 + 'world!';
#13#10
是十进制的CR/LF字符
或者您也可以使用^ M + ^ J快捷方式.所有的偏好问题."CTRL-CHAR"代码由编译器翻译.
MyString := 'Hello,' + ^M + ^J + 'world!';
你可以在^ M和^ J之间取+,但是你会得到编译器的警告(但它仍然可以正常编译).
另一方面,一个有用的技巧:
如果在TStrings中保存多个字符串,则只需使用TStrings的Text属性,如下例所示.
Label1.Caption := Memo1.Lines.Text;
你会得到你的多线标签......