Daniel Bastos wrote: > Galera, > fui criar umas funções pra manipular arrays dinâmicos pra mim, mas surgiu > uma dívida que não consigo entender o pq: > > procedure AddInDynArray(var AArray : array of variant; AValue : variant); > begin > SetLength(AArray, Length(AArray)+1); > AArray[High(AArray)] := AValue; > end; > > Quando compilo, da o erro: [DCC Error] DynArray.pas(120): E2008 Incompatible > types apontando a posição para o array passado por parâmetro. > O estranho que só aconteceu isso quando o array é passado por parâmetro. Se > eu criar um outro array no var desta, passa pela compilação. > Alguem consegue me esplicar?
É a diferença entre um dynamic array (que o setlength espera) e um open array (que você passou como parâmetro). Declare um type TVariantArray: array of Variant; e utilize-o no lugar do array of variant, deve resolver. Joao Morais

