Delphi中的字符串文字如何可以超过255个字符?

15 浏览
0 Comments

Delphi中的字符串文字如何可以超过255个字符?

我正在使用Delphi 7和字符串,并且在这个链接(http://www.codexterity.com/delphistrings.htm)中发现了以下内容:

对于默认长度的字符串,即简单声明为string,最大长度始终为255。ShortString永远不允许超过255个字符。

我曾经在我的Delphi代码中遇到过类似的情况(这是用于一个非常大的查询):

var

sMyStringOF256characters : String;

ilength : Integer;

begin

sMyStringOF256characters := 'ThisStringisofLength256,ThisStringisofLength256,.....'

// sMyStringOF256characters的长度为256

end;

...我遇到了这个错误:

[Error] u_home.pas(38): 字符串字面值最多只能有255个元素。

但是当我尝试这样做时:

var

iCounter : Integer;

myExtremlyLongString : String;

begin

myExtremlyLongString := '';

for iCounter := 0 to 2500 do

begin

myExtremlyLongString := myExtremlyLongString + IntToStr(iCounter);

end;

Label1.Caption := myExtremlyLongString;

Label2.Caption := IntToStr(Length(myExtremlyLongString));

end;

...结果是:

Delphi窗体显示了这两个Label的值。

正如您所看到的,myExtremlyLongString的长度为8894个字符。为什么Delphi没有报错,说myExtremlyLongString的长度超过了255个字符?我还尝试了以下方法,但是不起作用:

SetLength(sMyStringOF256characters, 300);

0