ComboBox com history
09/01/2006
0
Coloquei em uma tela de login, um combo e um edit. Agora que gravar um history no combo quando o usuário conectar. Assim da proxima vez, o usuário dele estará no combo. Como farei isso?
Abraços
Redoctober
Posts
09/01/2006
Eixox
1 - Armazenando em um arquivo Ini e quando o sistema é iniciado ele lê esse arquivo e carrega todo o histórico no arquivo Ini.
2 - Usando uma rotina do tipo ComboBox1.Items.Add(ComboBox1.Text); para carregar os itens para dentro do combobox e depois usando as procedures ComboBox1.Items.[b:5d061e330e]SaveToFile[/b:5d061e330e](´NomeDoArquivo´) e
ComboBox1.Items.[b:5d061e330e]LoadFromFile[/b:5d061e330e](´NomeDoArquivo´); para salvar e carregar os dados no combobox.
Outro detalhe, a medida que você for inserindo itens no combobox, você pode usar o IndexOf para ver se o nome digitado já existe.
09/01/2006
Redoctober
eu usei o evento OnChance
ComboBox1.AutoComplete := true;
Assim se existir algo parecido com o digitado ele é selecionado.
Valeu.
09/01/2006
Redoctober
meu arquivo ta assim:
---
joao
maria
maria
jose
joao
joao
maria
---
Ou seja, nesse arquivo tem vários nomes repetidos... Preciso carregar esses dados na combo, porem sem ter nenhum repetido. Ficando assim:
--
joao
maria
jose
--
Como faria?
09/01/2006
Edilcimar
09/01/2006
Eixox
Então, quando o usuário pressiona a tecla enter ou tab para se deslocar para o próximo campo, ele executa o evento onExit e lá no evento coloque o código:
if Combobox1.Items.Indexof(Combobox1.Text) = false then
ComboBox1.Items.Add(ComboBox1.Text);
Por causa disso que eu te falei esse lance.
09/01/2006
Redoctober
Do jeito que vc me passou nao funcionou.
10/01/2006
Adriano Santos
Teste se é maior ou menor que zero
if ...IndexOf() > 0 then //Existe //Faça o que tem que fazer.
10/01/2006
Eixox
Se a String que você procura for achada na lista ele retornará um valor inteiro dizendo qual é a posição na lista
Se a String que você procura não for localizada na lista ele retornará o valor -1.
Então meu caro amigo, no evento OnExit do combobox ou em qualquer botão, antes de voê executar o processo de inserssão do nome, mande ele executar esse comando que também insere o nome mas antes verifica se ele já está dentro da combobox. Eu testei e funciona corretamente - é case sensitive ok.
[b][color=red:472b02215f]if ComboBox1.Items.IndexOf(ComboBox1.Text) = -1 then
ComboBox1.Items.Add(ComboBox1.Text);[/[/color:472b02215f]b]
Clique aqui para fazer login e interagir na Comunidade :)