2009/2/26 Joao Morais <jcmorai...@gmail.com> > > Mas se eu propagar este objeto para uma outra rotina, o Delphi tb irá > > fazer a liberação de memória, como? > > Você pode propagar quanto quiser, contanto que não utilize o objeto > quando ele sair de contexto (ou seja, final do bloco except). Se > precisar dos dados, clone-o ou copie dele o que for relevante. > > -- > Joao Morais
Olá João, eu sabia que vc responderia! Então, "como" o compilador desaloca a memória é uma incógnita, certo? Apenas sabemos que ele faz (deve ter um E.Free antes do "end" do "except" ou qq coisa parecida). Bem, isso eu também sabia. Minha dúvida (não sei porque tive essa dúvida depois de tanto tempo) é justamente poder ou não propagar (passar como parâmetro) o objeto E (a variável de Exceção) para uma outra rotina. Se o compilador, digamos, "adiciona" um E.Free antes de sair do bloco try/except/end, então teria que dar erro se eu utilizasse o objeto fora deste contexto, mas isso não acontece. Tem alguma idéia sobre isso? -- Marcos Douglas