Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-11-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por elcigarra Ver Mensaje
Y sabiendo que no puede hacerse esto, como entonces puedo liberar la memoria de la variable miLista creada en esa función.
Estas intentando devolver un objeto que destruyes en la linea posterior.

Opciones hay muchas,y no entiendo bien que queres hacer, pero como sea que lo hagas deberías destruir el objeto solo después de usarlo, es decir en el código que lo recibe. Ejemplo tosco:

Código Delphi [-]
procedure TForm1.GetStrings(var MyStrings:TStrings);
begin
  MyStrings.Clear;
  MyStrings.Add('uno');
  MyStrings.Add('dos');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  miLista: TStrings;
begin
  miLista := TStringList.Create;
  GetStrings(miLista)
  memo1.Lines.Assign(miLista);
  FreeAndNil(MiLista); 
end;

Saludos
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #2  
Antiguo 12-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por donald shimoda Ver Mensaje
Estas intentando devolver un objeto que destruyes en la linea posterior.
Estoy de acuerdo con el amiguito Donald .

También podrías no crearte el TStrings y mandarle directo a tu función Memo.Lines que ya es un TStrings. Tu codigo quedaría así:

Código Delphi [-]
procedure TForm1.GetStrings(miLista : TStrings);
begin
  miLista.Add('uno');
  miLista.Add('dos');
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 GetStrings(Memo1.Lines);
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 12-11-2008
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.235
Poder: 20
ElKurgan Va camino a la fama
También te queda otra opción, como es el devolver los datos directamente como tipos de datos simples, puros y duros:

Código Delphi [-]
function TForm1.GetStrings:String;
var
  miLista: TStrings;
begin
  miLista := TStringList.Create;
  try  miLista.Add('uno');
    miLista.Add('dos');
    Result := miLista.Text;
  finally
    FreeAndNil(MiLista);
  end
end;
  
procedure TForm1.Button1Click(Sender: TObject);
begin 
  memo1.Lines.Text := GetStrings;
end;

Un saludo

Última edición por roman fecha: 12-11-2008 a las 18:28:29. Razón: Corregir formato de código
Responder Con Cita
  #4  
Antiguo 12-11-2008
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.235
Poder: 20
ElKurgan Va camino a la fama
ARGH... Pero... ¿Que le pasa a mi editor?

Mil perdones
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Buenas prácticas de programación elcigarra OOP 18 07-11-2008 17:05:27
Siete prácticas para un óptimo y rápido desarrollo de software poliburro Noticias 5 30-07-2008 16:48:55
buenas maneras... BlueSteel Humor 23 13-06-2008 08:11:21
Buenas Noticias faustoffp Noticias 0 04-09-2006 06:33:06
Ayuda Practicas En Delphi MARIAM23 Varios 1 22-07-2006 01:19:34


La franja horaria es GMT +2. Ahora son las 17:32:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi