> 
> 
> 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

João,

Obrigado pela ajuda. Tentei usar shortstring e também não funcionou, 
esqueci de falar que também tentei usar um array dinâmico de caracters e 
também não funcionou. A única maneira é usar strings com terminação  em 
nulo, ou seja matrizes de caracteres. O mais estranho de tudo é que 
usando uma matriz dinâmica de strings funciona! Vai entender. Agora não 
sei se é um bug do delphi ou não.


                
_______________________________________________________ 
Yahoo! Mail - Sempre a melhor opção para você! 
Experimente já e veja as novidades. 
http://br.yahoo.com/mailbeta/tudonovo/
 

Responder a