Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #9  
Antiguo 27-05-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 17
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Con un arreglo dinamico podes tener tantos numeros como memoria tengas disponible (ok no es del todo precisa esa afirmacion, es un poco exagerado, pero podemos verlo de esa manera)

Si te fijas en como estan implementadas las estructuras que contienen datos (el ejemplo mas facil son las listas) veras que usan un arreglo dinamico, el cual van haciendo crecer a medida que hace falta meter mas elementos. Para eso estas clases van llevando la cuenta de cuantos elementos hay, cual es el tamaño actual del arreglo, realizan el "ensanchamiento" cuando es necesario, etc.

Obviamente esto tiene un coste, porque los arreglos tratan de posiciones contiguas de memoria: si yo primero digo que hay un arreglo con 10 posiciones, se reserva en memoria 10 posiciones contiguas; si ahora quiero tener 15, necesito 15 posiciones. Si en donde estaba parado tengo para sumar las 5 posiciones, genial; pero si no, tengo que buscar una porcion de memroia en donde me entre un arreglo de 15 y despues moverlo.
Todo esto se maneja de memoria automatica incluso si queres operar a un nivel "tan bajo" como es el de los arreglos dinamicos. Uno simplemente lo redimensiona, con el mismo codigo que mostre arriba, llamando a System.SetLength(variableArreglo, tamanoDeseado) y Delphi/Lazarus se encarga del resto.

Si queres poder usar el arreglo dinamico, quiza requiera un poco mas de trabajo, aunque como aprendizaje esta buenisimo. Si queres usar algo ya hecho, en tu caso lo mas ideal seria una lista. No es estoy muy al dia con el tema de las clases en Lazarus, pero si realmente trata de ser lo mas Delphi-compatible posible, supongo que habra una clase TList en la unidad Classes.pas. Ejemplos y documentacion de esta clase hay por doquier. El problema que tiene esta clase es que el tipo de los elementos que guarda son punteros, porque permite guardar cualquier cosa. Va a implicar que aprendas a usar casting, lo cual a esta altura me parece demasiado

Tambien podes considerar utilizar la version generica, TList<T>. Esta soluciona el problema del tipo que comentaba en el parrafo anterior. En pocas palabras, es lo mismo que la TList, pero esta permite solamente tener elementos del tipo que le indica el programador, esto lo hace mas seguro y comodo de usar ya que te olvidas del tema de punteros. Pero de nuevo, creo que te voy a marear demasiado con tanta informacion
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Opinión sobre la estabilidad actual de Lazarus/Free Pascal Toni Lazarus, FreePascal, Kylix, etc. 34 06-02-2016 01:04:45
Soy desarrollador de Delphi ¿Que necesito saber para usar Lazarus? Godzuki Linux 7 23-02-2012 23:54:34
Lazarus, Nemesis Pascal rmendoza83 Varios 1 08-01-2009 17:41:08
Indy soporta Free Pascal/Lazarus Delfino Noticias 6 15-01-2006 10:55:55
Free Pascal y Lazarus Magician^ Noticias 7 31-03-2004 19:12:04


La franja horaria es GMT +2. Ahora son las 16:54:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi