【发布时间】:2018-04-16 09:26:22
【问题描述】:
背景:
我有两种形式。在 form1 上创建了一个数组,需要将它传递给 procedureX 的 form2。该数组是字符串数组的数组,并且是动态的。该数组在 procedureX 中使用,然后传回。清除如下:
procedure ProcedureX (var multidimensionalarray:array of string);
错误:
我知道这会带来错误,因为您不能传递多维数组。您得到的错误是: E2029 标识符应为但 'Array' 被发现。来自这个网站:https://blog.spreendigital.de/2016/08/01/pass-a-multidimensional-array-as-a-parameter-with-a-hidden-caveat/我知道你需要创建一个类型。
但是由于我的问题的背景,我有一些问题: - 我会在 form1 或 form2 中创建类型吗? - 如何在表单之间传递类型?
我还没有任何代码,因为我不知道从哪里开始。我是代码新手,真的不知道在哪里看。我知道这个问题已经被问过很多次了,但是因为我的程序在一个表格上,而我的数组在另一个表格上,我不知道该怎么做。
【问题讨论】:
-
您可以在单独的单元中声明您的类型(例如
MyTypes.pas)并将其添加到您的表单单元的uses子句中以便能够使用它们(uses ..., MyTypes;)。 -
伟大的思想... :-) 甚至在单位名称上:-)
-
根据你的 Delphi 版本,你也可以使用通用的
TArray<TArray<string>>