FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Liberar memoria
Estoy utilizando el componente IdHTTP1, pero tengo una duda sobre su uso correcto para liberar memoria, he visto que se libera mediante IdHTTP1.Free pero cuando se debe de liberar y donde?
por lo que he visto en este foro la forma correcta es así.. Código:
procedure TForm1.Button1Click(Sender: TObject); var IdHTTP: TIdHTTP; begin IdHTTP := TIdHTTP.Create; try try IdHTTP.Get('http://www.clubdelphi.com'); except end; finally IdHTTP.Free; end; end; |
#2
|
||||
|
||||
Hola,
Quédate con la idea: creas un objeto cuando lo vayas a usar, y, lo destruyes cuando ya no lo vayas a necesitar. "Try" y "Finally" sirve para garantizar, que, aun en el caso de error, "Finally" sería ejecutado, y, por lo tanto, nuestro objeto destruido. Pero, tú puedes usar tantas veces como quieras el objeto en cuestión, en este caso, realizar varias peticiones HTTP, liberando o destruyendo el objeto al final, cuando ya no lo necesites. Otra opción sería declarar alguna variable donde guardar la instancia del objeto, o sea, fuera del procedimiento local "Button1Click", usar aquí dicha variable, y, liberarla cuando nuestro programa terminase, por ejemplo, en todo caso cuando el objeto ya no nos fuera necesario. Pero dicho mal y pronto algo como esto, que, parece ser lo que ahora te preocupa:
... es perfectamente válido. No necesitas liberar el objeto a cada petición HTTP, sino que puedes reutilizarlo si quieres, y, liberarlo sólo al final, cuando ya no es necesario. Por lo demás no es bien dejar el "except" vacío, puesto que si ocurriese un error, simplemente, se ocultaría, lo que nos nos serviría de mucho a lo hora de solucionarlo. |
#3
|
||||
|
||||
Muchas gracias dec por la aclaración me quedo todo muy claro, ahora ya entiendo el funcionamiento correcto y no ponerlo únicamente por que si..
|
#4
|
||||
|
||||
Libro de lectura obligada, La cara oculta de Delphi
A partir de la página 220, creo recordar. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Liberar memoria | luiggixD | Varios | 1 | 02-01-2007 11:22:35 |
Liberar memoria | vicvil | Varios | 13 | 30-10-2006 17:14:38 |
Liberar memoria | Sick boy | Varios | 6 | 02-07-2005 10:11:29 |
Liberar memoria de un QR. | mlara | Impresión | 1 | 21-02-2004 18:31:16 |
Liberar Memoria | susje | Varios | 3 | 31-07-2003 23:18:18 |
|