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 28-10-2004
aromero aromero is offline
Registrado
 
Registrado: ago 2004
Posts: 9
Poder: 0
aromero Va por buen camino
Uso del Objeto TList

Buenas noches,

alguien me podría explicar como manipulo los objetos insertados en un TList. Yo pienso que
1º creo un objeto del tipo insertado en la lista
      • OBJ.create
2º asigno el objeto insertado en el TList al creado en 1
      • OBJ := lista.items[i]
3º lo modifico con un metodo especifico del objeto
    • OBJ.modifica(elemento)
4º ¿y ahora...?

Un saludo a todos
Responder Con Cita
  #2  
Antiguo 28-10-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por aromero
...alguien me podría explicar como manipulo los objetos insertados en un TList....
A ver si con un ejemplillo te aclaras:

Código Delphi [-]
var
  L:TList;
  Edit:TEdit;
  Index:Integer;
  E:TEdit;
begin
  // Crear la lista
  L := TList.Create();
  // Crear un objeto (un edit, por ejemplo)
  Edit := TEdit.Create(Self);
  Edit.Name := 'Edit1';
  // Añadirlo a la lista
  Index := L.Add(Edit);
  // Crear un segundo objeto
  Edit := TEdit.Create(Self);
  Edit.Name := 'Edit2';
  // Añadirlo a la lista
  Index := L.Add(Edit);
  // Obtener el primer objeto
  E := L.Items[0];
  E.Text := 'primer edit';
  // Objetener el segundo
  E := L.Items[1];
  E.Text := 'este es el segundo edit';
 
  // Para destruir yo utilizo un for para destruir todos los 
  // objetos y luego libero la lista
  ...
Si hay alguna parte que no entiendes, ya dirás...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 28-10-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Nada más agregar a lo que bien describe Neftali, que también existe el objeto TObjectList para manejar listas de objetos. En un ObjectList construido con

OL := TObject.List(true);
no hay necesidad de destruir cada uno de los objetos almacenados ya que la lista misma lo hace cuando ella misma se destruye.

// Saludos
Responder Con Cita
  #4  
Antiguo 29-10-2004
aromero aromero is offline
Registrado
 
Registrado: ago 2004
Posts: 9
Poder: 0
aromero Va por buen camino
Ya lo pillo, pero ¿que hago si quiero modificar las propiedades de uno de ellos?
Responder Con Cita
  #5  
Antiguo 29-10-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Obtienes el elemento que deses y lo guardas en una variable que sea del mismo tipo del elemento que has guardado:
En realidad esa variable apunta al elemento que hay en la lista guardado.

Código Delphi [-]
var
  E:TEdit
begin
  ...
 
  // Obtener el primer objeto
  E := L.Items[0];
  E.Text := 'primer edit';

  // Objetener el segundo
  E := L.Items[1];
  E.Text := 'este es el segundo edit';

  // obtener el objeto i
  E := L.Items[i];
  E.Text := 'este es el elemento i';
  // CUIDADO LA i NO PUEDER SER MAYOR o IGUAL que L.Count
  // (L.Count es el número de elementos de la lista)

Y luego modificas el elemento:

Código Delphi [-]
  ...
  E.Text := 'nuevo texto del elemento';
  // Cam,biamos el Left y Top
  E.Left := 100;
  E.Top := 200;
  ...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 29-10-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Metiendome donde no me llaman, considero oportuno que digas el objeto de que tipo es, ya que los ejemplos son con Tedits, pero si es un objeto personalizado, podría haber otras alternativas, me explico:

Código Delphi [-]
type  Tmio = class (tobject)
private
  FTexto : string;
  procedure SetValor(const Value:string);
public
  property Texto:string read FTexto write SetValor default '< cadena por defecto >';
end;

implementation

 procedure Tmio.SetValor(const Value:string);
begin
   if value <> FTexto then
   begin
      FTexto := Value + ' añado esta cadena automaticamente';
   end;
end;

De esta forma, al crear el objeto, la cadena texto tiene un valor distinto a cadena vacia, y cuando se modifique la propiedad Texto del objeto, automaticamente se puede hacer otras cosas, sin tener que llamar al método Modifica.

Puede que te sirva, o puede que no, sin saber lo que estas haciendo es imposible contestarte correctamente.

Saludos y perdon si no viene al tema.
Responder Con Cita
  #7  
Antiguo 29-10-2004
aromero aromero is offline
Registrado
 
Registrado: ago 2004
Posts: 9
Poder: 0
aromero Va por buen camino
Perdón, no me había dado cuenta. La definición del objeto es

TSuelo = class (TObject)
public
procedure Modificar_Color (c :TColor);
procedure Modificar_Asignacion (b : Boolean);
private
Color : TColor;
Asignado : Boolean;
end;

Gracias
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


La franja horaria es GMT +2. Ahora son las 01:46:59.


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