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 06-07-2006
DM2005 DM2005 is offline
Miembro
 
Registrado: abr 2005
Posts: 41
Poder: 0
DM2005 Va por buen camino
listbox con item repetidos

Hola, es posible que al visualizar un listbox1, que contiene varios items repetidos, solamente que aparezcan una sola vez.

ej. items

1 - Introducción
1 - Introducción
1 - Introducción
2 - Comienzo
2 - Comienzo
2 - Comienzo
3 - Final
3 - Final
3 - Final

muchas gracias!
Responder Con Cita
  #2  
Antiguo 06-07-2006
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
¿Y de dónde obtienes los items? ¿Lo rellenas tú? ¿Es una consulta de una base de datos?
Responder Con Cita
  #3  
Antiguo 06-07-2006
nemesio nemesio is offline
Miembro
 
Registrado: nov 2005
Ubicación: Isla de Margarita, Venezuela
Posts: 377
Poder: 19
nemesio Va por buen camino
Hola

Si los llenas desde una consulta, usa la instrucción GROUP BY del SQL, asi te lo agrupará por Item y no lo tendrás repetido.
Responder Con Cita
  #4  
Antiguo 06-07-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por nemesio
Hola

Si los llenas desde una consulta, usa la instrucción GROUP BY del SQL, asi te lo agrupará por Item y no lo tendrás repetido.
Entonces ¿la cláusula SELECT DISTINCT para qué se usa?
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 06-07-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Si no encuentras una solucion mejor puedes eliminar los elementos repetidos:

Código Delphi [-]
var
  i: integer;
begin
  i:= 0;
  with Listbox1.Items do
    while Count > i do
    begin
      if IndexOf(strings[i])<>i then
        Delete(i)
      else
        inc(i);
    end;
end;
Responder Con Cita
  #6  
Antiguo 06-07-2006
DM2005 DM2005 is offline
Miembro
 
Registrado: abr 2005
Posts: 41
Poder: 0
DM2005 Va por buen camino
respondiendo la pregunta

Hola, los items los obtengo de la carga de un .txt

Código Delphi [-]
ListBox1.Items.LoadFromFile('C:\teste\IPCapitulo.txt');

pero mi idea no es eliminarlos, sino que cuando los visualize no me muestre los repetidos, espero ayude esta explicacion,
gracias,
Saludos
Responder Con Cita
  #7  
Antiguo 06-07-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por DM2005
... pero mi idea no es eliminarlos, sino que cuando los visualice no me muestre los repetidos ...
No entiendo que es lo que quieres hacer, si no los vas a mostrar para que los necesitas cargados dentro de items. Si los necesitas mas tarde siempre los puedes volver a cargar del txt en un TStringlist, por ejemplo.

La única forma de controlar lo items que se ven y los que no es dibujarlos tu mismo, pero eso es matar moscas a cañonazos. Explica un poco mas lo que quieres hacer y a lo mejor encontramos una solución mejor.
Responder Con Cita
  #8  
Antiguo 06-07-2006
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Sugerencia, usa una lista temporal con la propiedad Duplicates=dupignore para evitar insertar elementos duplicados y después copias los elementos al listbox.

Algo como esto :

Código Delphi [-]


procedure TForm1.Button1Click(Sender: TObject);
var
 Temporal: TStringList;
begin

 Temporal:=TStringList.Create;


 Temporal.Sorted:=True;//La lista debe ser ordenada
 Temporal.Duplicates:=dupIgnore; // Igonorar los elementos repetidos

 Temporal.LoadFromFile('Lista.txt');

 //Copiar desde Temporal hacia ListBox
 ListBox1.Items.AddStrings(Temporal);

 Temporal.Free;


end;

Saludos
Responder Con Cita
  #9  
Antiguo 06-07-2006
nemesio nemesio is offline
Miembro
 
Registrado: nov 2005
Ubicación: Isla de Margarita, Venezuela
Posts: 377
Poder: 19
nemesio Va por buen camino
Cita:
Originalmente escrito por Lepe
Entonces ¿la cláusula SELECT DISTINCT para qué se usa?
Claro que también sirve. La idea es dar una solución a la vez y que cada miembro del foro aporte con algo.
Responder Con Cita
  #10  
Antiguo 07-07-2006
DM2005 DM2005 is offline
Miembro
 
Registrado: abr 2005
Posts: 41
Poder: 0
DM2005 Va por buen camino
Gracias a todos, la procedure que Hector envio para mi, funciono correctamente como yo necesitaba....desde ya muchas gracias a todos.
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
sobre listbox y acceso a un item en particular federiconqn21 Varios 9 01-03-2007 10:22:49
Encontrar un Item en un ListBox esocrates Varios 8 29-04-2006 00:34:12
añadir item a listbox Cosgaya Varios 1 10-06-2005 01:33:32
ListBox detectar uando sale un item y cuando entra kakesoft OOP 6 01-05-2005 11:07:00


La franja horaria es GMT +2. Ahora son las 14:04:25.


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