Fórum Sobre Cópia de Vetores #279495

29/04/2005

0

Pesoal tenho o seguinte:
Type
  TVetorVariant = array of variant;

  var
    VetorVariant: TVetorVariant


e tenho um outro vetor declarado da mesma forma em outro formulário... qdo eu atribuo o [b:430ffc7c1f]VetorVariant[/b:430ffc7c1f] do outro formulário para esse declarado acima, funciona, porém qdo libero o outro formulário da memória dando um free, acontece um erro de apontamento (imagino que liberando o outro formulário ele libera também o VetorVariant contido nele), mas o VetorVariant original tem que continuar com esses valores, agora a dúvida, existe uma forma de [b:430ffc7c1f]copiar[/b:430ffc7c1f] realmente esses vetores ou tenho de fazer isso via laço de repetição?


Bruno Belchior

Bruno Belchior

Responder

Posts

29/04/2005

Massuda

...existe uma forma de [b:6f20f625f1]copiar[/b:6f20f625f1] realmente esses vetores ou tenho de fazer isso via laço de repetição?
Quando você faz...
var
  A, B: TVetorVariant;
...
  SetLength(A, 10);
  for I := 0 to 9 do begin
    A[I] := ....
  end;

  B := A;
na verdade A e B são o mesmo array na memória.

No seu caso, para copiar A em B, teria que fazer um loop:
  SetLength(B, Length(A)); 
  for I := 0 to Length(A) - 1 do
    B[I] := A[I];



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar