Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-10-2015
doctorhd doctorhd is offline
Miembro
NULL
 
Registrado: abr 2013
Posts: 48
Poder: 0
doctorhd Va por buen camino
Lista genérica de objetos genericos

Hola, precisamente lo del titulo, se puede implementar una lista genérica de objetos genéricos, donde:
Código Delphi [-]
var MiList:TList< T >
pueda almacenar objetos de distinto tipo:
Código Delphi [-]
Milist.Add(MiClass< String >);
Milist.Add(MiClass< Boolean >);
.....
Saludos...
Responder Con Cita
  #2  
Antiguo 19-10-2015
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola doctorhd.

Muy cierta tu afirmación (con matices sobre la sintaxis).

Sólo añadiría, para nuestros compañeros, que desde Delphi 2009 estas cosas son posibles gracias a diversas ampliaciones en la sintaxis de Object Pascal, en particular lo referente a genéricos. También conviene decir que la unidad System.Generics.Collections presenta una clase TObjectList < T > que cumple con esa funcionalidad. Aunque, si no se requiere restricción por clase, también puede utilizarse la tradicional TObjectList de System.Contnrs.

Un saludo.

Al González.
Responder Con Cita
  #3  
Antiguo 19-10-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Sólo para ampliar lo que comenta Al, otra posibilidad es utilizar el framework Spring4D, el cual en su unidad Spring.Collections define un montón de bueno, colecciones genéricas

A mi punto de ver son mucho más poderosas que las que se incluyen en la RTL de Delphi, ya que por ejemplo son basadas en interfaces, y todas derivan de la interface IEnumerable<T>

Esta interface es sencillamente genial ya que provee un montón de métodos muy útiles. Por ejemplo, provee métodos como Where, Any, Skip, Take, TakeWhile..uff un montón

La idea es implementar colecciones estilo LINQ. Estos métodos reciben como argumento un predicado el cual es sencillamente una referencia a una función que retorna verdadero o falso (satisface o no el predicado)

De esta manera uno puede escribir código más limpio, (se me viene a la mente programación funcional), ya que uno se dedica a resolver su problema y no ensucia el código con interaciones para filtrar y obtener los elementos que necesita de una lista, simplemente se específica (aquí aparece la programación funcional) que objetos quiere (mediante un predicado) y luego ópera con ellos

Hay un vídeo o dos en youtube (y dos libros) de Nick Hodges en donde muestra en acción este framework

Y esta es sólo una de las bondades de Spring4D, hay muchísimas cosas interesantes para explotar de el
Responder Con Cita
  #4  
Antiguo 19-10-2015
Avatar de BDWONG
BDWONG BDWONG is offline
Miembro
NULL
 
Registrado: nov 2013
Posts: 113
Poder: 11
BDWONG Va por buen camino
Mira este codigo espero sea lo que buscas


Código Delphi [-]
uses
  SysUtils,  Generics.Collections   ;

var
 listaStrings:TList< string>;
 listaBooleans:TList< boolean>;

 listGenerica:TList< TObject>;
begin
//creamos los objetos
  listaStrings:=TList< string>.create;
  listaBooleans:=TList< boolean>.create;
  listGenerica:=TList< TObject>.create;
  try
     listaStrings.Add('soy un string');
     listaBooleans.Add(true);
     //anadimos las listas a a lista generica
     listGenerica.Add(listaStrings);
     listGenerica.Add(listaBooleans);

     Writeln(TList<string>(listGenerica[0]).First);//imprime  el string
     Writeln(TList< boolean>(listGenerica[1]).First);//imprime el booleano

  finally
  //liberamos los objetos
    listaStrings.Free;
    listaBooleans.Free;
    listGenerica.Free;
  end;
  Readln;
end.

saludos...
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
Exisite un objeto tipo lista contenedor de objetos? flystar Varios 4 23-04-2010 04:53:09
Lista de objetos PabloZZZ Varios 16 10-04-2008 20:01:11
Persistir una lista de objetos miguel_e Varios 6 08-02-2007 22:29:13
Parametros sql genericos AbcXxx Conexión con bases de datos 2 10-11-2005 00:31:59
Una lista de Objetos en .NET bustio .NET 1 11-10-2004 15:23:08


La franja horaria es GMT +2. Ahora son las 08:37:58.


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