Delphi中的字符串文字如何可以超过255个字符?
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);