加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

数组 – 如何在Delphi中正确声明数组属性?

发布时间:2020-12-15 09:21:33 所属栏目:大数据 来源:网络整理
导读:我正在尝试创建一个数组来将TStringList的每个项目存储到一个数组中,该数组的大小可能会根据所述TStringList中的项目数量而有所不同. 我知道我的语法错误,我想要的可能是动态数组,所以[0..100]可能是错误的,但我找不到任何替代语法在线. ProductAvailability
我正在尝试创建一个数组来将TStringList的每个项目存储到一个数组中,该数组的大小可能会根据所述TStringList中的项目数量而有所不同.

我知道我的语法错误,我想要的可能是动态数组,所以[0..100]可能是错误的,但我找不到任何替代语法在线.

ProductAvailabilityResult = Class(TRemotable)
private
  FResultArray : array[1..100] of string;
published
  property ResultArray[Index: Integer]: array of string read FResultArray write FResultArray;
End;

这就是我如何调用它并填充它. conditionList是我的TStringList,我将填充到我的数组中.

for I := 0 to conditionList.Count - 1 do
begin
  aProductAvailabilityResult.ResultArray[I] := conditionList[I];
end;

如果您可能有或没有对我正在做的事情有其他建议,这个设置的原因是因为它是一个通过SOAP服务器发送结果的Web服务应用程序,我不认为我的PHP / Soap客户端可以读取TStringLists,所以我需要先将它传递给一个数组.

让我知道,谢谢!

解决方法

虽然有一些语法错误,但您已声明了 array property.但是,您在问题和注释中声明您希望属性是动态数组.这与数组属性不同.

声明一个动态数组属性,如下所示:

type
  ProductAvailabilityResult = class(TRemotable)
  private
    FResultArray: TArray<string>;
  published
    property ResultArray: TArray<string> read FResultArray write FResultArray;
  end;

填充它像这样:

var
  i: Integer;
  List: TStringList;
  par: ProductAvailabilityResult;
  arr: TArray<string>;
....
List := ...;
par := ...;
SetLength(arr,List.Count);
for i := 0 to List.Count-1 do
  arr[i] := List[i];
par.ResultArray := arr;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读