var
MinhaLista: TStringList;
begin
MinhaLista := TStringList.Create;
MinhaLista.Blablabla...
MinhaLista.Free;
end;
MinhaLista é dona dela mesma... assim não depende de outra instancia e pode
ser liberada da memoria sem erros.
Outro exemplo
SeuForm := TSeuForm.Create(nil);
Try
SeuForm.ShowModal;
finally
SeuForm.Free;
end;
SeuForm é dono dele mesmo... o que seria diferente de:
Application.CreateForm(TSeuForm, SeuForm);
Desta forma Application é dona do SeuForm e teria que ser destruido assim
SeuForm.Release; // Aguarda todos os processos(componentes e variaveis)
pendendentes dentro dele.
SeuForm := Nil; // Limpa a variável SeuForm para poder ser Recriada
Se usar Free neste caso poderá causar violation por outros componentes
estarem dependentes do SeuForm
Observe que se voce nao utilizar Release e Nil neste caso, sera criado um
outro form com o nome SeuForm_1 e assim por diante.
Se for usar aplicações MDI use Free ... do contrário use Release e Nil.
0 comentários:
Postar um comentário