我必须解决一个问题:Delphi的动态形式阵列和数据阵列管理
Form23:
public
{ Public declarations }
FormsArray : array of TForm24;
end;
Procedure Create_form;
begin
SetLength(FormsArray, Length(FormsArray)+1);
FormsArray[Length(FormsArray)-1] := TForm24.Create(Self);
end;
Form24:
public
end;
var
UniqueValue : Array of ShortString;
Procedure Fill_Unique;
var
tmp1 : Longint;
begin
SetLength(UniqueValue, 256);
for tmp1 := 0 to Length(UniqueValue)-1 do
begin
UniqueValue[tmp1] := IntToStr(tmp1);
end;
end;
Procedure OnButtonClick(Sender);
begin
Fill_Unique;
end;
时,我有一种形式Form24和我填充一些价值观,那么它就没问题。
当我有两种形式Form24(FormsArray [0]和FormsArray [1]),我更改UniqueValue在一种形式,然后我有两种形式的值。
即
创建FormsArray [0]和FormsArray [1]
当我点击FormsArray按钮[0]:
FormsArray [0] - UniqueValue [...] = '1,2,3,4,5,6,7,8,9 ......';
FormsArray [1] - UniqueValue [...] ='1,2,3,4,5,6,7,8,9 ...';
当我点击FormsArray按钮[1]:
FormsArray [0] - UniqueValue [...] =“1,2,3,4,5,6,7,8,9 .. ';
FormsArray [1] - UniqueValue [...] ='1,2,3,4,5,6,7,8,9 ...';
当我更改代码:
Form24:
public
UniqueValue : Array of ShortString;
end;
和我点击按钮FormsArray [1]那么我:
FormsArray [0] - UniqueValue [... ] ='';
FormsArray [1] - UniqueValue [...] ='';
UniqueValue为空。
我需要在我创建的每个窗体Form24中有独立数组(每个窗体创建时都有不同的UniqueValue)。
如何做到这一点?我做错了什么?
感谢您的任何帮助。
已解决!
我得到-1的解决方案,我写在这里。那么将是无法解决的。搜索你自己。
在你的“解决方案”中陈述的所有内容都是无关紧要的(你从来没有向我们展示过你所说的,所以谁在乎你从哪里调用它或者什么时候?)或者重复你已经在问题中陈述的内容(表单数组) 。您是不是想要显示* strings *数组的新声明,就像我已经在我的答案中显示的那样? – 2012-03-16 13:32:51
问题不在代码中,而是来自调用方法。我不知道错误在哪里。如果我知道,我不会问。我发布解决方案,这种情况下的主要问题在哪里(如果有人遇到这个问题,因为很难找到)。我得到了-1,然后我将删除解决方案。 – wcale 2012-03-16 20:29:48