Cita:
Empezado por CaosDeath
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?
|
Hola CaosDeath, borrar directamente como te han indicado no se puede, lo que si podrías hacer, es recorrer los elementos a la izquierda sin tomar en cuenta el elemento a borrar, así lo sobreescribes y tienes una relación entre los indices de tu ListBox y tu Array, ejemplo:
Código Delphi
[-]
var
band : Boolean;
ind, i : Integer;
begin
band := False;
ind := -1;
PosABorrar := ListBox.ItemIndex;
While (ind<=High(ArrayCadenas)) and (Not band) do
begin
if ind=PosABorrar then
for i:=ind to High(ArrayCadenas) do
begin
if ithen
ArrayCadenas[i] := ArrayCadenas[i+1]
else
ArrayCadenas[i] := '';
band := True;
end;
inc(ind);
end;
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.
Código Delphi
[-]
SetLength(Cadena, High(ArrayCadenas));
Pero, para que te evites hacer todo eso, también te recomiendo utilizar un StringList.
Saluditos