Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-12-2012
ale4132 ale4132 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 13
Poder: 0
ale4132 Va por buen camino
problema con listbox

Tengo un Problema en delphi 7 con un listbox, la situacion es la siguiente:
Por medio de un boton genero de manera aleatoria una cierta cantidad de items en un listbox, algunos de los cuales a veces se repiten mas de una vez, mi pregunta es:
¿como podría hacer por medio de otro boton para que los elementos o items duplicados del listbox se eliminen?

espero respuesta, muchas gracias!!
Responder Con Cita
  #2  
Antiguo 15-12-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ale4132, bienvenido a Club Delphi.

Como a todos los que se inician te invitamos a que leas nuestra guía de estilo.

Con respecto a tu consulta podes hacer:
Código Delphi [-]
procedure BorrarRepetidos(LB: TListBox);
begin
 with TStringList.Create do
  try
    Sorted       := True;
    Duplicates   := dupIgnore;
    Text         := LB.Items.Text;
    LB.Items.Text:= Text;
  finally
    Free;
  end;
end;

Ejemplo de llamada:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
   BorrarRepetidos(ListBox1)
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 15-12-2012
ale4132 ale4132 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 13
Poder: 0
ale4132 Va por buen camino
listo!!!
me fue de mucha ayuda la respuesta.
gracias, saludos!!!
Responder Con Cita
  #4  
Antiguo 15-12-2012
ale4132 ale4132 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 13
Poder: 0
ale4132 Va por buen camino
si no es mucha molestia quisiera saber si es posible realizar el mismo procedimiento de eleminimar duplicados por medio de un boton utilizando una estructura de trabajo "for .... do" en la programacion
Responder Con Cita
  #5  
Antiguo 16-12-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
ale4132,

Cita:
Empezado por ale4132
si no es mucha molestia quisiera saber si es posible realizar el mismo procedimiento de eleminimar duplicados por medio de un boton utilizando una estructura de trabajo "for .... do" en la programacion
Revisa este código:
Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
   i,j : Integer;
   Item : String;
   Count : Integer;

begin

   Count := ListBox1.Count-1;

   for i := 0 to Count do
   begin
      If (i > Count) Then break;
      Item := ListBox1.Items.Strings[i];
      for j := i + 1 to Count do
      begin
         If (j > Count) Then break;
         if (ListBox1.Items.Strings[j] = Item)  then
         begin
            ListBox1.Items.Delete(j);
            Dec(Count);
         end
      end;
   end;

end;
El código anterior elimina los Items Duplicados en un control TListBox por medio de comparaciones sucesivas.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 16-12-2012 a las 00:51:31.
Responder Con Cita
  #6  
Antiguo 16-12-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Usando for podrías hacer:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  i,j: Integer;
begin
  with ListBox1 do
    for i:= 0 to Items.Count-1 do
      for j:= Items.Count-1 downto i+1 do
        if Items[i] = ListBox1.Items[j] then
          Items.Delete(j);
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 16-12-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
ale4132,

Revisa este código:
Código Delphi [-]
procedure TForm1.Button5Click(Sender: TObject);
var
   i : integer;
begin
   with ListBox1 do
   for i := Items.Count - 1 downto 0 do
   begin
      if Items.IndexOf(Items[i]) < i then
      Items.Delete(i);
   end;
end;
El código anterior plantea otra método para la eliminación de Items Duplicados en un control TListBox.

Espero sea útil

Nelson.
Responder Con Cita
  #8  
Antiguo 16-12-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
ale4132,

Cita:
Empezado por nlsgarcia
El código anterior elimina los Items Duplicados en un control TListBox por medio de comparaciones sucesivas.
Corrección: El código del primer método propuesto falla si un item se repite más de una vez, lo correcto sería:
Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
   i,j : Integer;

begin

   for i := 0 to ListBox1.Count-1 do
      for j := ListBox1.Count-1 downto i+1 do
         if (ListBox1.Items.Strings[i] = ListBox1.Items.Strings[j]) then
            ListBox1.Items.Delete(j);

end;
Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 16-12-2012 a las 04:23:16.
Responder Con Cita
  #9  
Antiguo 16-12-2012
ale4132 ale4132 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 13
Poder: 0
ale4132 Va por buen camino
gracias, me fueron muy utiles las prespuestas!!!
saludos!!!
Responder Con Cita
Respuesta



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
Problema con listbox mefixxto OOP 8 26-09-2008 04:43:07
Problema con ListBox Jaiha OOP 2 04-07-2007 17:35:35
Problema con ListBox en Delphi7 jmlifi Varios 5 30-11-2006 00:48:20
problema en listbox ramphi Varios 6 24-08-2006 15:40:46
Problema con ListBox Delphos Varios 3 10-02-2004 17:18:39


La franja horaria es GMT +2. Ahora son las 23:43:43.


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
Copyright 1996-2007 Club Delphi