Mais uma de Listbox, só q essa procurei e não achei!!
Blz pessoal,
estou com dois listbox trabalhando daquela forma, passando os itens de um para o outro, tudo certinho, só q preciso implementar duas coisas, existe no listbox1 items q podemos chamar de cabeças de grupo q são por exemplo filiais, e os funcionarios os items propriamente ditos, bom, as dúvidas são:
1. como fazer para não permitir a passagem desses cabeças de grupo para o listbox2?
2. quando fizer o caminho inverso, ou seja, do listbox2 para o listbox1, quero q o item volte para o mesmo lugar q estava (mesmo ItemIndex) de quando saiu, só observando q o listbox1 não pode estar com Sorted=True;
essas eu quero ver!!!
Valeu!!!!!!
estou com dois listbox trabalhando daquela forma, passando os itens de um para o outro, tudo certinho, só q preciso implementar duas coisas, existe no listbox1 items q podemos chamar de cabeças de grupo q são por exemplo filiais, e os funcionarios os items propriamente ditos, bom, as dúvidas são:
1. como fazer para não permitir a passagem desses cabeças de grupo para o listbox2?
2. quando fizer o caminho inverso, ou seja, do listbox2 para o listbox1, quero q o item volte para o mesmo lugar q estava (mesmo ItemIndex) de quando saiu, só observando q o listbox1 não pode estar com Sorted=True;
essas eu quero ver!!!
Valeu!!!!!!
Fajo
Curtidas 0
Respostas
Adriano Santos
26/03/2007
1. como fazer para não permitir a passagem desses cabeças de grupo para o listbox2?
procedure TForm1.Button1Click(Sender: TObject); begin if ListBox1.Items.IndexOf(Edit1.Text) > -1 then ShowMessage(´Item já existe´) else ListBox1.Items.Add(Edit1.Text); end;
2. quando fizer o caminho inverso, ou seja, do listbox2 para o listbox1, quero q o item volte para o mesmo lugar q estava (mesmo ItemIndex) de quando saiu, só observando q o listbox1 não pode estar com Sorted=True;
procedure TForm1.Button2Click(Sender: TObject); begin ListBox1.Items.Insert(3, Edit1.Text); end;
essas eu quero ver!!!
Tom de desafio? :?:
GOSTEI 0
Fajo
26/03/2007
Hehehehe,
não Adriano, apesar de q não é uma dúvida tão comum..., bom mas vamos ao q interessa,
com relação a 1ª dúvida, acho q vc não entendeu, o q eu quero é impedir q determinada string passe do listbox1 para o listbox2, mesmo q ele não exista no 2, tipo, se o primeiro caractere da string selecionada for um sinal de = ele não passará;
com relação à 2ª, blz, era isso q eu queria, agora, e se eu tiver multiseleção?
Obrigado pela ajuda!!!
não Adriano, apesar de q não é uma dúvida tão comum..., bom mas vamos ao q interessa,
com relação a 1ª dúvida, acho q vc não entendeu, o q eu quero é impedir q determinada string passe do listbox1 para o listbox2, mesmo q ele não exista no 2, tipo, se o primeiro caractere da string selecionada for um sinal de = ele não passará;
com relação à 2ª, blz, era isso q eu queria, agora, e se eu tiver multiseleção?
Obrigado pela ajuda!!!
GOSTEI 0
Adriano Santos
26/03/2007
Hehehehe,
não Adriano, apesar de q não é uma dúvida tão comum..., bom mas vamos ao q interessa,
com relação a 1ª dúvida, acho q vc não entendeu, o q eu quero é impedir q determinada string passe do listbox1 para o listbox2, mesmo q ele não exista no 2, tipo, se o primeiro caractere da string selecionada for um sinal de = ele não passará;
procedure TForm1.Button1Click(Sender: TObject); begin if ListBox1.Items[ListBox1.Item][1] = ´=´ then ShowMessage(´Item não pode ser movimentado´) else ListBox1.Items.Add(Edit1.Text); end;
com relação à 2ª, blz, era isso q eu queria, agora, e se eu tiver multiseleção?
Obrigado pela ajuda!!!
Qual o problema? Descubra o Index de cada item. Faça um for.
procedure TForm1.Button1Click(Sender: TObject); var I : integer; begin for I := 0 to ListBox1.Items.Count-1 do begin if ListBox1.Selected[I] then ListBox2.Items.Insert(I, ListBox1.Items[I]); end; end;
GOSTEI 0
Adriano Santos
26/03/2007
Hehehehe,
não Adriano, apesar de q não é uma dúvida tão comum..., bom mas vamos ao q interessa,
com relação a 1ª dúvida, acho q vc não entendeu, o q eu quero é impedir q determinada string passe do listbox1 para o listbox2, mesmo q ele não exista no 2, tipo, se o primeiro caractere da string selecionada for um sinal de = ele não passará;
procedure TForm1.Button1Click(Sender: TObject); begin if ListBox1.Items[ListBox1.Item][1] = ´=´ then ShowMessage(´Item não pode ser movimentado´) else ListBox1.Items.Add(Edit1.Text); end;
com relação à 2ª, blz, era isso q eu queria, agora, e se eu tiver multiseleção?
Obrigado pela ajuda!!!
Qual o problema? Descubra o Index de cada item. Faça um for.
procedure TForm1.Button1Click(Sender: TObject); var I : integer; begin for I := 0 to ListBox1.Items.Count-1 do begin if ListBox1.Selected[I] then ListBox2.Items.Insert(I, ListBox1.Items[I]); end; end;
GOSTEI 0
Fajo
26/03/2007
Isso tá certo mesmo:
procedure TForm1.Button1Click(Sender: TObject);
begin
if ListBox1.Items[ListBox1.Item][1] = ´=´ then
ShowMessage(´Item não pode ser movimentado´)
else
ListBox1.Items.Add(Edit1.Text);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if ListBox1.Items[ListBox1.Item][1] = ´=´ then
ShowMessage(´Item não pode ser movimentado´)
else
ListBox1.Items.Add(Edit1.Text);
end;
GOSTEI 0
Adriano Santos
26/03/2007
Isso tá certo mesmo:
procedure TForm1.Button1Click(Sender: TObject);
begin
if ListBox1.Items[ListBox1.ItemIndex][1] = ´=´ then
ShowMessage(´Item não pode ser movimentado´)
else
ListBox1.Items.Add(Edit1.Text);
end;
ListBox1.Items[ListBox1.ItemIndex][1] //ou Copy(ListBox1.Items[ListBox1.ItemIndex], 1, 1);
Só dar uma estudadinha de leve [b:4572fb9f0b]fajo[/b:4572fb9f0b], não me leve a mal. ;)
GOSTEI 0
Adriano Santos
26/03/2007
Resolveu seu problema fajo? Mandai pra gente saber se deu certo ou não.
GOSTEI 0