Recent

Author Topic: pregunta sobre TObjectList  (Read 6290 times)

zelda16bit

  • Full Member
  • ***
  • Posts: 118
pregunta sobre TObjectList
« on: June 15, 2021, 08:38:19 pm »
Hola.

Estoy en el punto 7.2 del manual:
https://castle-engine.io/modern_pascal_introduction.html#generic-containers-section

Aqui explica de una forma resumida el uso del objeto TObjectList,me gustaria si es posible que me explicarais en profundidad el uso de este objeto porque quiero saber usarlo bien para la programacion de videojuegos.

Edson

  • Hero Member
  • *****
  • Posts: 1296
Re: pregunta sobre TObjectList
« Reply #1 on: June 15, 2021, 09:16:51 pm »
Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

zelda16bit

  • Full Member
  • ***
  • Posts: 118
Re: pregunta sobre TObjectList
« Reply #2 on: June 15, 2021, 10:56:45 pm »
Bueno...en realidad en este articulo que comentas,solo hay un ejemplo muy simple y ademas recomiendas el uso de la libreria fgl,que creo que es antigua.

En el manual que yo estoy estudiando se recomienda la libreria Generics.Collections que es mas nueva ,pero no profundiza mucho en las lista de objetos,tendre que practicar por mi cuenta y ver las funciones que salen con el autocompletado.De todas formas gracias. :)

Edson

  • Hero Member
  • *****
  • Posts: 1296
Re: pregunta sobre TObjectList
« Reply #3 on: June 16, 2021, 03:59:10 pm »
Es que el artículo no tenía como fin explicar a detalle el uso de listas en Lazarus. Solo llamar la atención sobre que existen listas genéricas también en Lazarus.

También escribí otro artículo sobre un problema puntual en las listas: https://blogdetito.com/2013/06/27/free-pascal-la-clase-gen-rica-tfpglist-y-su-problema-con-los-registros/

El tema de listas en Lazarus, es largo de explicar y no hay mucha información en la red. Tal vez podemos centrarnos en preguntas más específicas, para ir avanzadndo en el tema. Tampoco soy experto en todos los contenedores que se tienen en Free Pascal y Lazarus; pero puedo aportar en lo que conozco.

Sería un buen aporte ir creando más documentación en español sobre este tema.

En mi caso, yo trabajo casi exclusivamente con TFPGObjectList<> y casi no he tenido necesidad de algo más.
Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

zelda16bit

  • Full Member
  • ***
  • Posts: 118
Re: pregunta sobre TObjectList
« Reply #4 on: June 16, 2021, 09:22:51 pm »
Solo quiero saber usar listas para objetos,es decir,para creacion de videojuegos.

Creas objetos y los guardas en una lista o una lista para cada objeto, y asi poder acceder a sus propiedades recorriendo las listas con un bucle y luego cuando quiera eliminar un objeto,pues solo lo elimino de la lista.

Solo saber usar correctamente las listas para el manejo de objetos en videojuegos.Ya use listas en python y pygame y era sencillo, pero como en freepascal no hay mucha informacion pues pregunto para saber usarlas correctamente para cuando me ponga con allegro 5.

Edson

  • Hero Member
  • *****
  • Posts: 1296
Re: pregunta sobre TObjectList
« Reply #5 on: June 16, 2021, 11:26:24 pm »
Bueno hay varios tipos de listas a disposición. Las comunes que serían TFPList, TList, TFPObjectList, TObjectList, TStringList, ...

Para estas listas (no sé si todas), necesitas incluir la unidad generics.collections.

Y también tienes las genéricas, que serían TFPGList y TFPGObjectList. Definidas en la unidad "fgl".

Ahora las genéricas las puedes usar al estilo Delphi {$mode delphi} o al estilo Free Pascal.

Podrías dar una mirada a este hilo: https://forum.lazarus.freepascal.org/index.php?topic=43625.0

Personalmente, para manejar objetos yo prefiero usar las listas genéricas

Un ejemplo práctico de uso lo puedes ver en mi GitHub, aquí: https://github.com/t-edson/ThXmlRpc/blob/master/ThXmlRpc.pas o también aquí https://github.com/t-edson/ogEditGraf/blob/2.8/ogEditionMot.pas

Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

zelda16bit

  • Full Member
  • ***
  • Posts: 118
Re: pregunta sobre TObjectList
« Reply #6 on: June 17, 2021, 09:10:43 pm »
Vamos a ver si con esta informacion me aclaro. :)

 

TinyPortal © 2005-2018