Código
Imagine que você quer implementar uma procedure que separe as palavras de uma string por espaços.
Vamos esboçar um protótipo:
procedure SplitString (s : String; var output : array of String);
O que se pode imaginar por aqui é que o programa vai ler a string S, contar os espaços e alocar a memória para o array output, certo? Errado. Tente compilar isto e você obterá um erro de 'Incompatible types'.
Para passar um array dinâmico para uma procedure/function, você precisa, primeiro, definir um tipo para o array específico que você quer passar. Nesse caso, array of String. Fica assim:
type TDynamicStringArray = array of String;
E o protótipo:
procedure SplitString (s : String; var output : TDynamicStringArray);
Agora sim você compilar sem problemas pode usar SetLength para alocar a memória.
Flw.
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009