PDA

Ver la Versión Completa : trabajando con 2 listbox


gsilvei
02-09-2006, 17:59:30
Hola, a todos, tengo la siguiente duda, por alli en el foro encontre un hilo con una procedure que recorre un listbox, yo quiero trabajar con 2 listbox, pero me gustaria que al recorrer el listbox, el no comienze desde el primer item, y si que recorra el listbox junto a otro listbox, es decir...que el listbox2 y listbox 4, recorran juntos con cada clique, y de alguna forma que el item del listbox2 sea igual al item del listbox4.
espero haber explicado bien..

aqui hago doble clique en el listbox1 y el carga en 3 listbox mas las siguientes .txt.....

procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
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');
end;
end;

y despues por medio de un "SpeedButtom" recorro los item de los listbox.





{$WRITEABLECONST ON}
procedure TForm1.SpeedButton2Click(Sender: TObject);
const
i: integer = 0;
begin
with ListBox3.Items do
begin
if ListBox3.ItemIndex < Count-1
then ListBox2.ItemIndex := ListBox2.ItemIndex + 1
else MessageDlg('Final del curso !',mtInformation,[mbOk],0);
Panel2.Caption := ListBox2.Items.Strings[ListBox2.ItemIndex];
WebBrowser1.Navigate(strings[ListBox2.ItemIndex]);
end;
begin
with ListBox4 do
begin
if i < Count then
if Items[i] = 'N' then
begin
Self.Height := 300;
Self.Width := 500;
Self.Left := 400;
Self.Top := 400;
end;
if i < Count-1 then
inc(i)
else
i:= ListBox2.ItemIndex;
end;
end;
end;
{$WRITEABLECONST OFF}


agradezco por la ayuda, ya que debo finalizar un proyecto.Saludos

gsilvei
04-09-2006, 03:23:27
Hola, sera posible si alguine me ayuda con la duda que tengo.
Gracias
Saludos

MaMu
04-09-2006, 03:37:38
Haber si entendi bien, lo que queres haces es recorrer el contenido de un ListBox, pero a la vez, queres que otros ListBox que hay por el formulario se recorran de igual manera? es decir, queres tener x cantidad de ListBox sincronizados? No se si he llegado a comprender al idea.

Saludos.

MaMu
04-09-2006, 03:44:30
Por las dudas te lo dejo, por ahi te sirve, si lo que necesitas es tener los 4 ListBox sincronizados, es decir, que trabajen los 4 con el clic del primero:

Suponiendo que los nombres sean ListBox1, ListBox2.. 3 y 4 basta con que pongas éste código en el OnClick de todos los ListBox (podes meterlo sólo en la primera y al resto de ListBox le asignas el OnClick de la primera). En cualquier ListBox que hagas clic, se recorren los 4 o mas ListBox al unísono, como bailarines bien sincronizados :p



procedure TForm1.ListBox1Click(Sender: TObject);
var
n:byte;
begin
for n:=2 to 4 do
begin
(FindComponent('ListBox'+IntToStr(n))as TListBox).ItemIndex:=
(Sender as TListBox).ItemIndex;
end;
end;



Saludos.