如何使用对象检查器中的sLineBreak?

时间:2016-09-22 15:35:33

标签: string delphi designer object-inspector

目前,我设置了一个包含sLineBreak常量的字符串作为TLabel控件的Caption属性的值。

MyLabel.Caption := 'A' + sLineBreak + 'B';

sLineBreak在System.pas中定义如下(Delphi 2007):

const
      sLineBreak = {$IFDEF LINUX} #10 {$ENDIF} {$IFDEF MSWINDOWS} #13#10 {$ENDIF};

有没有办法通过使用对象检查器来做同样的事情? (在设计时)。

更新 可能在将来我将把这个项目转移到一个新的IDE并将在不同的平台上开发,但目前我没有特别的理由使用sLineBreak而不是#13#10。对不起,我很抱歉。

3 个答案:

答案 0 :(得分:5)

不,Object Inspector不会在设计时评估变量。

解决此问题的常用方法是在表单的构造函数中设置标题:

procedure TForm1.FormCreate(Sender: TObject);
begin
  MyLabel.Caption := 'A' + sLineBreak + 'B';
end;

答案 1 :(得分:4)

您无法在设计时使用sLineBreak常量。但是,您可以:

  1. 直接编辑DFM(右键单击表单设计器并选择View as Text)将CR / LF字符插入编码的Caption文本中,例如:

    使用裸-LF换行符

    object MyLabel: TLabel
      Caption = 'A'#10'B'
    end
    

    使用CRLF换行符

    object MyLabel: TLabel
      Caption = 'A'#13#10'B'
    end
    
  2. 安装第三方设计时属性编辑器(或编写自己的),允许对String属性值进行多行编辑。例如,"Extended String Property Editor"

答案 2 :(得分:3)

我假设您希望在跨平台设置中执行此操作,在这种情况下无法完成此操作。表单文件没有任何条件值规范机制。您应该在运行时应用该值。