Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   listbox (https://www.clubdelphi.com/foros/showthread.php?t=35459)

DM2005 11-09-2006 21:16:21

listbox
 
Hola a todo en el foro, tengo la siguiente duda, estoy trabajando en un proyecto donde trabajo con 3 listbox (listbox1, listbox2, listbox5), en ambos listbox, cargo 3 archivos .txt con diferentes informacion... hasta ahi todo bien, resulta que en el listbox5 cargo los items del archivo .txt, mostrando sin repetir los items, es decir que en el listbox2 y listbox5 cargo el mismo archivo .txt, y el listbox2 la propiedad visible: = False; pq quiero que aparezca los items sin repetir, y solo mostraria el listbox5, solo que cuando recorro el listbox5 donde no se repiten los items, de alguna manera sea igual al contenido de items en el listbox2, seria algo asi..

listbox2
01
01
01
02
02
03
03
03
03
04
04

listbox5
01
...
...
02
...
03
...
...

es decir que cuando hago doble click en el listbox5, en el item correspondiente, este sea igual al mismo item del listbox2.

Código Delphi [-]
procedure TForm1.ListBox1DblClick(Sender: TObject);
var
  Temporal: TStringList;
begin
  Panel6.Visible := False;
  Panel7.Visible := True;
  if ListBox1.ItemIndex = 0 then
    begin
       ListBox2.Clear;
       ListBox2.Items.LoadFromFile('C:\IPCapitulo.txt');
       ListBox3.Items.LoadFromFile('C:\IPArquivo.txt');
       ListBox4.Items.LoadFromFile('C:\IPMaximizada.txt');
       ListBox5.Clear;
       Temporal:=TStringList.Create;
       Temporal.Sorted:=True;//La lista debe ser ordenada
       Temporal.Duplicates:=dupIgnore; // Igonorar los elementos repetidos
       Temporal.LoadFromFile('C:\IPCapitulo.txt');
       //Copiar desde Temporal hacia ListBox
       ListBox5.Items.AddStrings(Temporal);
       Temporal.Free;    end;

Código Delphi [-]
procedure TForm1.ListBox2DblClick(Sender: TObject);
begin
  Panel1.Visible := True;
  Panel6.Visible := False;
  Panel7.Visible := False;
  if ListBox2.ItemIndex <> -1 then
     begin
       Panel2.Caption := ListBox2.Items.Strings[ListBox2.ItemIndex];
       WebBrowser1.Navigate(ListBox3.Items.strings[ListBox2.ItemIndex]);
       ListBox4.ItemIndex := ListBox2.ItemIndex;
     end;
end

espero hber explicado bien,
desde ya gracias por la ayuda.
saludos.

xEsk 15-09-2006 03:14:53

Si no he entendido mal lo q quieres hacer (corrigeme si no es asi) es:

- Del ListBox con los Items sin repetir, poder acceder al item X correspondiente en el ListBox q contiene todos los items.

Graficamente seria algo asi

ListBox con todo:
1
1
1
2
2
2
3
3
...

ListBox sin repetidos:
1
2
3
...

Y al hacer click encima de 2 (por ejemplo) de la lista sin repetir acceder al primer "2" q hay en el ListBox con todos los items. ¿Me equivoco?

El codigo para hacer lo q he descrito es:

Código Delphi [-]
// ListBox1 contiene todos los elementos
// ListBox2 contiene los elementos sin repetirse
// La funcion "IndexOf" lo q hace es obtener la posicion de un determinado String dentro del TStringList
ListBox1.ItemIndex:=ListBox1.Items.IndexOf(ListBox2.Items[ListBox2.ItemIndex]);

De todas formas, me he perdido un poco en tu explicacion con tanto ListBox1, ListBox2, ListBox5 por aqui y por alla.. hehe

Saludos.


La franja horaria es GMT +2. Ahora son las 13:12:46.

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