Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   poblema con listbox (https://www.clubdelphi.com/foros/showthread.php?t=67578)

andresorozco86 23-04-2010 18:31:29

poblema con listbox
 
Buenos dias:

soy nuevo en delphi y tengo el siguiente problema:

Lo que sucede es que tengo un listbox, al cual le borro algunos registros que tiene y necesito que al darle click a un boton el listbox quede como estaba antes de borrarle los registros. Hay alguna propiedad que haga esto.

Gracias

eflosten 23-04-2010 18:45:19

Asi, de primeras, creo que lo que dices es imposible, un item borrado es un item que deja de existir.
Lo más facil que se me ocurre es que crees un TStringList que haga de "backup", es decir, que tenga lo mismo que quieres que recupere el ListBox, de ese modo hagas lo que hagas en el listBox, puedes recuperar el original copiandolo desde el StringList.

Espero haberme explicado, que no estoy seguro (viernes a última hora...mi neurona no funciona bien ya :D)

andresorozco86 23-04-2010 18:49:06

si asi es como lo tengo, queria es saber si existia otra forma de mejorarlo

rgstuamigo 23-04-2010 21:33:48

Bueno..otra opcion que veo es que tengas un historial de los item borrados por ejemplo podrias utilizar otro TStringList y cuando borres algo de tu listBox lo añadas a tu TStringList historial de tal manera que el último item de nuestra lista historial sería el último item que se borró del listbox.;).
Saludos...:)

Neftali [Germán.Estévez] 26-04-2010 14:26:27

Puedes usar un String.
Debería bastar con esta línea antes

Código Delphi [-]
  StringLista :=  ListBox1.Items.Text;

Y esta después para restaurar:

Código Delphi [-]
  ListBox1.Items.Text := StringLista;

eflosten 26-04-2010 16:41:04

Cita:

Empezado por Neftali (Mensaje 361902)
Puedes usar un String.
Debería bastar con esta línea antes

Código Delphi [-]
  StringLista :=  ListBox1.Items.Text;

Y esta después para restaurar:

Código Delphi [-]
  ListBox1.Items.Text := StringLista;

Con eso solo recuperaría el último que se ha borrado, y si no he entendido mal lo que quiere es que, independientemente de los movimientos que haya en el listbox, pueda volver a un estado "origen"

Caro 26-04-2010 17:43:39

Hola

Cita:

Empezado por eflosten (Mensaje 361916)
Con eso solo recuperaría el último que se ha borrado, .......................

Si guarda en la variable String antes de hacer cualquier operación si va a tomar todos los items, tal como lo dice Neftali.

andresorozco86, ¿porque no en un StringList? tienes muchas mas opciones al guardar en el StringList y el codigo para copiar es solo una línea.

Código Delphi [-]
  //Para copiar al >StringList
  StringList.Assign(ListBox1.Items);
 
  //Para restaurar
  ListBox1.Items.Assign(StringList);

Saluditos

Neftali [Germán.Estévez] 26-04-2010 19:40:06

Cita:

Empezado por eflosten (Mensaje 361916)
Con eso solo recuperaría el último que se ha borrado, y si no he entendido mal lo que quiere es que, independientemente de los movimientos que haya en el listbox, pueda volver a un estado "origen"

Basta con colocar la primera línea después de inicializar el listBox, como ha dicho Caro.

andresorozco86 27-04-2010 21:10:55

Gracias
 
Muchas gracias a todos por las soluciones


La franja horaria es GMT +2. Ahora son las 15:32:59.

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