Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何使用对象检查器中的sLineBreak?_String_Delphi_Designer_Object Inspector - Fatal编程技术网

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

String 如何使用对象检查器中的sLineBreak?,string,delphi,designer,object-inspector,String,Delphi,Designer,Object Inspector,目前,我正在将包含sLineBreak常量的字符串设置为TLabel控件的Caption属性的值 MyLabel.Caption := 'A' + sLineBreak + 'B'; sLineBreak在System.pas中定义如下(Delphi 2007): 有没有一种方法可以通过使用对象检查器来做同样的事情?(在设计时) 更新: 也许将来我会把这个项目转移到一个更新的IDE上,并在不同的平台上开发,但目前没有特别的理由让我使用sLineBreak而不是#13#10。很抱歉误解。不,对象

目前,我正在将包含sLineBreak常量的字符串设置为TLabel控件的Caption属性的值

MyLabel.Caption := 'A' + sLineBreak + 'B';
sLineBreak在System.pas中定义如下(Delphi 2007):

有没有一种方法可以通过使用对象检查器来做同样的事情?(在设计时)

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

不,对象检查器在设计时不计算变量

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

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

不,对象检查器在设计时不计算变量

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

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

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

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

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

  • 直接编辑DFM(右键单击表单设计器并选择
    查看为文本
    ),将CR/LF字符插入编码的
    标题
    文本,例如:

    使用裸露的LF换行符

    object MyLabel: TLabel
      Caption = 'A'#10'B'
    end
    
    object MyLabel: TLabel
      Caption = 'A'#13#10'B'
    end
    
    使用CRLF换行符

    object MyLabel: TLabel
      Caption = 'A'#10'B'
    end
    
    object MyLabel: TLabel
      Caption = 'A'#13#10'B'
    end
    
  • 安装第三方设计时属性编辑器(或编写自己的编辑器),该编辑器允许对
    字符串
    属性值进行多行编辑。例如


  • 在设计时不能使用
    sLineBreak
    常量。但是,您可以:

  • 直接编辑DFM(右键单击表单设计器并选择
    查看为文本
    ),将CR/LF字符插入编码的
    标题
    文本,例如:

    使用裸露的LF换行符

    object MyLabel: TLabel
      Caption = 'A'#10'B'
    end
    
    object MyLabel: TLabel
      Caption = 'A'#13#10'B'
    end
    
    使用CRLF换行符

    object MyLabel: TLabel
      Caption = 'A'#10'B'
    end
    
    object MyLabel: TLabel
      Caption = 'A'#13#10'B'
    end
    
  • 安装第三方设计时属性编辑器(或编写自己的编辑器),该编辑器允许对
    字符串
    属性值进行多行编辑。例如


  • 您提出的两种解决方案的唯一问题是,它不使用
    sLineBreak
    ,而是在Windows CR/LF对中使用硬代码。@KenWhite第一种解决方案允许您选择要使用的字符。第二种解决方案使用
    TStrings
    使用的任何换行符,默认情况下为
    sLineBreak
    ,但这取决于IDE的RTL副本中的
    sLineBreak
    ,并且由于IDE是Windows应用程序,这将是CRLF。但这就是为什么我还提到编写您自己的属性编辑器(这并不困难),然后您可以使用您想要的任何字符。编辑DFM以插入CR/LF(或简单的LF)并不能处理平台之间的差异。属性编辑器可能会这样做。(我曾经遇到过第三方替换
    String
    属性编辑器的问题,它们想要做的远远超出预期,对我来说,避免在构造函数中添加一行代码是不值得的)。@KenWhite OP使用的是D2007,因此没有跨平台开发,因此
    sLineBreak
    始终是可靠的。直到下周升级到西雅图或柏林。:-)大概OP有理由使用
    sLineBreak
    而不是
    #13#10
    。您提出的两种解决方案的唯一问题是,它不使用
    sLineBreak
    ,而是使用Windows CR/LF对中的硬代码。@KenWhite第一种解决方案允许您选择要使用的字符。第二种解决方案使用
    TStrings
    使用的任何换行符,默认情况下为
    sLineBreak
    ,但这取决于IDE的RTL副本中的
    sLineBreak
    ,并且由于IDE是Windows应用程序,这将是CRLF。但这就是为什么我还提到编写您自己的属性编辑器(这并不困难),然后您可以使用您想要的任何字符。编辑DFM以插入CR/LF(或简单的LF)并不能处理平台之间的差异。属性编辑器可能会这样做。(我曾经遇到过第三方替换
    String
    属性编辑器的问题,它们想要做的远远超出预期,对我来说,避免在构造函数中添加一行代码是不值得的)。@KenWhite OP使用的是D2007,因此没有跨平台开发,因此
    sLineBreak
    始终是可靠的。直到下周升级到西雅图或柏林。:-)大概OP有理由使用
    sLineBreak
    而不是
    #13#10