Filtro para listbox
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!
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
Curtidas 0
Respostas
Demolitor
20/09/2003
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;
GOSTEI 0
Dan_rs
20/09/2003
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!
GOSTEI 0
Cebikyn
20/09/2003
No OnClick do CheckBox:
Depois na procedure ou função que adiciona items ao ListBox:
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.
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.
GOSTEI 0