type
TMiItem = class(TCollectionItem)
private
FNombre: string;
FNumero: string;
public
property Numero: string read FNumero write FNumero;
property Nombre: string read FNombre write FNombre;
end;
Y la clase TCollection algo así:type
TElementos = class(TCollection)
private
function GetItem(Index: integer): TMiItem ;
public
function Add: TMiItem ;
property Item[Index: integer]: TMiItem read GetItem;
end;
El problema que me encuentro ahora, necesito hacer una lista que contenga dos tipos Items.¿Te refieres a:?
¿Hay alguna clase que me sirva para eso?.
Hola, lo que quiero hacer es una lista, tengas items, pero no de una clase determinada, sino de dos.El problema que me encuentro ahora, necesito hacer una lista que contenga dos tipos Items.¿Te refieres a:?
¿Hay alguna clase que me sirva para eso?.
1. 2 tipos de ítems en un solo ítem.
2. Ítems de 2 tipos diferentes.
Para el caso 1, no veo complicación, solo que ahora tu TMiItem deberá incluir dos campos de tipo Ítem.
Aunque yo lo haría con listas genéricas, crrando una clase que contenga los campos/objetos que quiera.
para el caso 2, podrías hacer uso del polimorfismo y crear una clase base y dos clases derivadas.
Hola, lo que quiero hacer es una lista, tengas items, pero no de una clase determinada, sino de dos.
Por ejemplo. Crear una lista que contenga de un centro de estudio o escuela. Así tendría una lista con dos tipos de item. Uno sería del tipo Alumno, y otro sería otro diferente, que sería sería del tipo Profesor.
Creo que la opción de generics es buena. Estoy mirando ejemplos.
Saludos
if Lista.Item[i] is TClaseAlumno then ...
o, para profesores,if EsteItem is TClaseProfesor then ...
Podía hacerse de un modo más robusto (por ejemplo usando un método "GetRole" que devuelva la clase o un miembro de una enumeración) pero la idea básica es esa.
P[1:"COGIDA"]{Y el otro tipo es así:
GP1:
UF : 1, UT : 2,
J1= -81.857 deg, J2= 47.883 deg, J3= -49.767 deg,
J4= -6.301 deg, J5= -89.018 deg, J6= -5.289 deg
};
P[2]{
GP1:
UF : 1, UT : 2, CONFIG : 'N U T, 0, 0, 0',
X = 2817.633 mm, Y = 1893.810 mm, Z = 2118.963 mm,
W = -169.750 deg, P = 14.966 deg, R = -18.503 deg