delphi7 要求的对象或 class 类型

Object or class type required in delphi7

我尝试将字符串值转换为字符数组。 我写了下面的代码但是得到了

的错误

[Error] Unit1.pas(35): Record, object or class type required

本行部分a := s.ToCharArray;

procedure TForm1.Button1Click(Sender: TObject);
 var
 a: array of char;
 s: String;
begin
 s:= Edit1.Text;
 a := s.ToCharArray;
end;

有什么问题?

在 Delphi7 中没有字符串助手,因此您遇到了编译错误。改用这个

SetLength(a, Length(s));
Move(Pointer(s)^, Pointer(a)^, Length(s) * SizeOf(s[1]));

现在,SizeOf(s[1]) 在 Delphi 7 中是 1,因此乘法不是绝对必要的,但这确实意味着如果您移动到Unicode Delphi.

或者,如果 Move 的使用不合您的口味,请使用循环复制字符

SetLength(a, Length(s));
for i := 1 to Length(s) do
  a[i - 1] := s[i];