GARANTIR DESCONTO

Fórum Filtro para listbox #183244

20/09/2003

0

Estou com problemas em filtrar os dados em um listbox, o que eu gostaria de saber como eu posso interferir nas entradas de dados de um listabox, seria para deixar no listbox apenas os que possuam por exemplo ´X´, ele teria que verificar a cada nova entrada se a mesma possui um ´X´ estaria aprovada, se não tiver seria deletada automaticamente... uso uma checkbox para abilitar o filtro!

Há, obrigado ao cebikyn pela captura dos links com frames, era o problema que eu encontrava, pois mesmo com o seu primeiro codigo em páginas online não funcionou tambem, mas o segundo resolveu todos os meus problemas, valeu!


Dan_rs

Dan_rs

Responder

Posts

20/09/2003

Demolitor

Utilizei uma listbox, um botao e um edit...
procedure TForm1.Button1Click(Sender: TObject);
var a: String;
begin
        a:= Copy(Edit1.Text, 1, 1);
        If a = ´x´ Then//verifica se a primeira letra é um x
        ListBox1.Items.Append(Edit1.Text);
        Edit1.Clear;
        Edit1.SetFocus;
end;



Responder

Gostei + 0

20/09/2003

Dan_rs

Acho que não passei direito o que eu queria DeMolItoR, eu gostaria que a verificação seja feita em todas as linha já adicionadas ou que forem adicionadas posteriormente, e que a busca pelo X seja feita em toda a linha e não só no começo... por isso estou com dificuldades, mas valeu a ideia é quase!


Responder

Gostei + 0

20/09/2003

Cebikyn

No OnClick do CheckBox:

procedure TForm1.cbFiltroClick(Sender: TObject);
var
  i: Integer;
begin
  if (Sender as TCheckBox).Checked then
    for i:=ListBox1.Items.Count-1 downto 0 do
      if not (Pos(´x´,ListBox1.Items[i])<>0) then
        ListBox1.Items.Delete(i);
end;


Depois na procedure ou função que adiciona items ao ListBox:

procedure XXX;
var
  NovoItem: String;
begin
  ...
  if cbFiltro.Checked then begin
    if Pos(´x´, NovoItem)<>0 then
      ListBox1.Items.Add(NovoItem);
  end;
  ...
end;


A função [b:42321e7de8]Pos[/b:42321e7de8] diferencia maiúsculas de minúsculas, se precisar de uma que não diferencie, deixe uma msg.


Responder

Gostei + 0

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

Aceitar