1

目前,我正在设置一个包含 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。我很抱歉造成误解。

4

3 回答 3

5

不,对象检查器不会在设计时评估变量。

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

procedure TForm1.FormCreate(Sender: TObject);
begin
  MyLabel.Caption := 'A' + sLineBreak + 'B';
end;
于 2016-09-22T15:44:46.367 回答
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属性值进行多行编辑。例如,“扩展字符串属性编辑器”

于 2016-09-22T15:55:13.343 回答
3

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

于 2016-09-22T15:48:57.940 回答