Alexandre Rodrigues wrote: > TTipoNaoFunciona = record > Nome: string; > Dado01: integer; > Dado02: Double; > end; > > Nesse caso, embora os dados 01 e 02 sejam retornados norlmamente o Nome > retorna um valor inválido. > > TTipoFunciona = record > Nome: array[0..255] of string; > Dado01: array of string; > Dado02: integer; > Dado03: Double; > end; > > Nesse caso como Dado01 é uma matriz de strings funciona normalmente.
Isto ocorre porque o tipo string é, por padrão, uma ansi string, o que significa um ponteiro para a região da memória em que está a sequência de caracteres. Se você desabilitar a diretiva $H ou usar shortstring ao invés de string o compilador irá criar uma string estática ao invés de um ponteiro para string, e isto deverá resolver o problema. Joao Morais