Oi João.

Mas o que eu devo fazer????
Coloquei o Dispose no final do processo, mas ocorre o mesmo problema.

Não sei mais o que fazer...

Me ajuda ;)

Andresa




________________________________
De: Joao Morais <[EMAIL PROTECTED]>
Para: delphi-br@yahoogrupos.com.br
Enviadas: Terça-feira, 28 de Outubro de 2008 14:08:35
Assunto: Re: [delphi-br] Ponteiro - Ajuda


2008/10/28 Andresa Ferreira <andresa_delphi@ yahoo.com. br>:
> Bom dia a todos.

Boa tarde,

> ... depois começou dar access violation,
>
> Código:
> TMenu = Record
> iId_Nivel: Integer;
> sDs_Opcao: String;
> iId_Nivel_Ch: Integer;
> // sNm_Form: String;
> end;
> pMenu = ^TMenu;

Saudade de ponteiros.

> ...
> While not All_QryAux.Eof do
> begin
> New(Menu);
> Menu^.iId_Nivel := All_QryAux.FieldByN ame('ID_NIVEL' ).AsInteger;
> Menu^.sDs_Opcao := All_QryAux.FieldByN ame('DS_OPCAO' ).AsString;
> Menu^.iId_Nivel_ Ch := All_QryAux.FieldByN ame('ID_NIVEL_ CHAMAR'). AsInteger;
> // Menu^.sNm_Form := All_QryAux.FieldByN ame('NM_FORM' ).AsString;
> sTexto := Trim(All_QryAux. FieldByName( 'DS_OPCAO' ).AsString) ;
> If All_QryAux.FieldByN ame('ID_NIVEL' ).AsInteger = 1 then
> aNode[i]:= tvMenu.Items. AddObject( Nil, sTexto, Menu)
> else
> begin
> tnInd := IndiceHie(Menu) ;
> aNode[i] := tvMenu.Items.. AddChildObject( tnInd, sTexto, Menu);
> end;
> Inc(i);
> All_QryAux..Next;
> Dispose(Menu) ;

Não olhei detalhes do código, mas esse dispose tá estranho. Você está
liberando memória e mantém uma referência para ela atravês do
treeview. O treeview não vai tirar uma cópia dos dados, mas manter um
ponteiro à área que você alocou. Você tem que dar dispose só depois de
não precisar mais dessa área.

A propósito, quando trabalhar com alocação dinâmica, procure manter um
gerenciador de memória ativo e em modo debug. Ele apresenta a você
tanto corrupção quanto vazamentos.

Joao Morais
 


      Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua 
cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]

Responder a