Cita:
Empezado por Lepe
¿No te sería más comodo derivar de TObjectList?, que maneja una lista de objetos por sí mismo.
El string lo meterías dentro del objeto, y listo.
Solo tendrías que hacer un par de forzados de tipos para tener una lista de objetos que te devuelvan el TMiObjeto en lugar del típico TObject.
saludos
|
La decisión de usar TStringList ha sido porque necesito poder buscar entre los objetos mediante el campo
Abbrev. Entonces, me he apoyado en la clase TStringList porque posee el método
Find (si está ordenado) ó
IndexOf (si no está ordenado) y así no tengo que implementarlo yo.
Es cierto que con un TStringList desperdicio algo de memoria,ya que el campo
Abbrev lo contiene por duplicado: una vez como
Value y otra dentro del propio
MiObjeto.
La clase TObjectList también posee el método
IndexOf pero, salvo que me corrijáis, creo que no lo puedo aprovechar para buscar entre los objetos según un determinado campo (corregidme si me equivoco porque de esto no estoy seguro).
Es cierto que mediante la clase TObjectList me puedo evitar tener que destruir cada uno de los objetos, pero dentro del uso que le voy a dar a esta lista no se encuentra el de poder borrar algún objeto, simplemente va a ser una lista fija que contendrá objetos provenientes de un archivo XML, y a la que accederé de vez en cuando (se puede decir que una vez cargada, será de sólo lectura).
Precisamente por ser de sólo lectura, en lugar de
heredar de TStringList había pensado en
encapsular el TStringList, y publicar (wrappear -ó como se diga- ) sólo el método Find (ó IndexOf) ya que es el único que voy a emplear. Pero bueno, el usuario
delphi.com.ar me ha dado a entender que heredar me aportaría más flexibilidad (y quizás más adelante me dé cuenta de que la necesito) y me ha convencido.