FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Borrar dato de arreglo?
Tengo un problema tengo datos metidos en arreglo (array) y se muestran en un listbox pero no se como borrar un dato seleccionado en el listbox del arreglo solo puedo quitarlo del listbox pero sigue en el arreglo alguien que me diga como le ago?
o aunque sea como guardar los datos de un listbox en un arreglo nuevo? |
#2
|
||||
|
||||
Hola CaosDeath.
Si tenes declarado un arreglo ej: v: array[1..n] of string y deseas borrar un dato correlacionado con el del ListBox, podrías obtener el índice del dato actualmente seleccionado con: ListBox1.ItemIndex y eliminar el contenido de esa posición del array. Pero no se puede eliminar dicha posición en sí misma puesto que es una estructura estática. Es decir que te quedará un lugar vacío donde elimines un dato. Me parece mucho más apropiado usar TstringList en lugar de un array, ya que podrás eliminar items de forma más sencilla. Un código simple de ejemplo: (agregá a un Form 2 TListBox y un Tbutton ) … Implementation var StList: TstringList; ... Código:
procedure TForm1.FormCreate(Sender: TObject); begin StList:= TStringList.Create; with StList do begin Add('UNO'); Add('DOS'); Add('TRES'); Add('CUATRO') end; ListBox1.Items:= StList; // Items de StringList a ListBox end; procedure TForm1.Button1Click(Sender: TObject); var ix: Integer; begin ix:= ListBox1.ItemIndex; // Obtener indice de el item actual ListBox1.Items.Delete(ix); // Borrar de ListBox StList.Delete(ix); // Borrar de StringList ListBox2.Items:= StList; end;
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Como dice ecfisa, al ser una estructura estática no tenés forma de eliminar datos.
Lo que se suele hacer es, en el caso de que sea un arreglo de strings, poner un string vacío en la posición que querés borrar - Arreglo[i]:=''; - o ponerle un identificador determinado - Array[i]:='%&VACIO&%'; Si es de números (enteros o decimales) suele ponerse un número teóricamente inutilizable - Array[i]:=-99999; o Array[i]:=-865.14563; - para entender que el dato que está ahí es obsoleto. Esos identificadores usualmente se colocan como constantes para utilizarlos eficazmente. Al leer el arreglo, verificás si el dato en esa posicion no es un vacío y hacés lo que necesitás. Saludos. |
#4
|
||||
|
||||
Cita:
Ahora, si quieres hacer desaparecer el ultimo elemento que tiene como valor '', puedes utilizar un array dinamico, la primera ves tendra todos los elementos que le indiques, despues haciendo primero lo que esta en el codigo de arriba y para eliminar la ultima posición solo debes redimensionarlo con la función SetLength, no te olvides que el indice con el que empieza un array dinamico es 0.
Pero, para que te evites hacer todo eso, también te recomiendo utilizar un StringList. Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. Última edición por Caro fecha: 07-04-2010 a las 15:56:52. |
#5
|
||||
|
||||
Otra cosita, al redimensionar y aplicar nuevamente el SetLength, no se pierden los datos que ya tenías antes.
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Imprimir dato en columnas diferentes según valor del dato | saldanaluis | Impresión | 2 | 06-09-2007 00:17:32 |
Borrar lineas detalle al borrar registro maestro | akinom38 | Conexión con bases de datos | 3 | 11-01-2006 10:38:07 |
borrar los campos de un DBGrid sin borrar los titulos de las columnas | Torreblanca | OOP | 2 | 02-08-2005 00:12:52 |
Borrar un dato determinado de un Array. | alfredosg19 | Varios | 5 | 24-03-2005 10:05:17 |
Arreglo de componentes | jzginez | OOP | 2 | 13-03-2004 23:02:21 |
|