Ik heb een dynamische array met strings waarin ik de invullingen op een Form bewaar. Dat werk prima binnen een Form (zo kan ik gegevens van broer/zus snel kopieren). Maar naar een ander Form kopieren wil niet.
Wat code (ingedikt tot zijn essentie):
Kopieren binnen een Form van array A naar array B:
Code:
public
A, B: array of string;
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject); //vul A
procedure Bij(sNw: string);{sub}
begin
SetLength(A, Length(A) +1);
A[Length(A)-1]:= sNw;
end;//sub
begin
Bij('een');
Bij('twee');
end;
procedure TForm2.Button2Click(Sender: TObject);//kopieer en toon
var i: Integer;
begin
B:= Copy(A);
for i:= 0 to (Length(B)-1) do
Memo1.Lines.Add(B[i]);
end;
Voorgaande werkt prima binnen (sub-)Form 2
Maar als ik in (sub-)Form2 de array A vul en hem op dezelfde manier in (het aanroepende) Form1 probeer te kopieren krijg ik een lege string B.
De gebruikte code in Form1:
Code:
public
{ Public declarations }
B: array of string;
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2:= TForm2.Create(Application);
with Form2 do begin
ShowModal;
B:= Copy(A);
Release;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var i: Integer;
begin
for i:= 0 to (Length(B)-1) do
Memo1.Lines.Add(B[i]);
end;
Is het zo dat je dynamische arrays alleen binnen een Form kunt kopieren?
En waarom niet van de ene naar het andere Form?
Want als ik hetzelfde met een stringlist doe dan gaat het wel goed.
Of is er iets wat ik over het hoofd zie, of fout doe.
Bookmarks