Re: [firebase-br] Usuários Conectados no banco

Jeferson Oliveira jefersonfoliveira em gmail.com
Qua Dez 13 14:49:04 -03 2006


[modo TotalmenteOFF On]
- A função do parâmetro Owner
O parâmetro Owner (Proprietário) do método Create indica qual o
componente responsável pela destruição do objeto que está sendo
instanciado.
Um componente ao ser destruído destrói antes todos os componentes que
lhe pertencem.


- Valores comuns para Owner
Qualquer componente pode ser proprietário de outro.
Em tempo de projeto, quando um componente é arrastado para um
formulário, o formulário se torna automaticamente seu dono.
Ao cirar instâncias de classe em em tempo de execução, os valores mais
comuns para o parâmetro Owner são:

Self: variável que representa o objeto corrente. Em um formulário
indica que a área alocada para a criação do novo objeto será liberada
quando o formulário for destruído;

Application: variável global que representa a instância corrente da
aplicação. Se passá-la como parâmetro, a área alocada para o novo
objeto só será liberada quando a aplicação for encerrada;

nil: ausência de valor. Se Owner é passado como nil, não há um
proprietário para o objeto que está sendo criado.


- Respondendo sua pergunta
A diferença entre usar Application e nil está em não realizar a tarefa
desnecessária de referenciar um Owner para um objeto que será
explicitamente liberado na sequência, e dar maior legibilidade ao
código. Se utilizar nil e não liberar o objeto, a área alocada
permanecerá ocupada, até que outros mecanismos (o garbage collection
do SO, por exemplo) cuidem de liberá-la.


- O mais importante

É boa prática liberar os objetos criados em tempo de execução. Por
isso, a principal diferença entre os códigos que postei não está em
alterar o proprietário do objeto de Application para nil, mas sim no
uso do bloco try..finally para garantir que ainda que haja alguma
exceção durante a execução do método, o objeto criado terá sua área
liberada, evitando assim consumo de memória desnecessário.

[modo TotalmenteOFF Off]


Mais detalhes em livros e/ou listas de Delphi, pois com esse tópico
creio que já esgotamos "nossa cota" de OFFs do ano 2006. :-)


Abraço!
Jeferson Oliveira




Mais detalhes sobre a lista de discussão lista