Selecao DevMedia QUERO SER PRIME

Fórum Mais uma de Listbox, só q essa procurei e não achei!! #339320

26/03/2007

0

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!!!!!!


Fajo

Fajo

Responder

Posts

26/03/2007

Adriano Santos

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? :?:


Responder

Gostei + 0

26/03/2007

Fajo

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!!!


Responder

Gostei + 0

26/03/2007

Adriano Santos

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;



Responder

Gostei + 0

26/03/2007

Adriano Santos

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;



Responder

Gostei + 0

26/03/2007

Fajo

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;


Responder

Gostei + 0

26/03/2007

Adriano Santos

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. ;)


Responder

Gostei + 0

27/03/2007

Adriano Santos

Resolveu seu problema fajo? Mandai pra gente saber se deu certo ou não.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar