Ir para conteúdo
Fórum Script Brasil
  • 0

Combobox


hunter2017

Pergunta

Olá amigos programadores em delphi, estou com dificuldades com os parâmetros do meu combobox, tem nele um texto, mas eu gostaria que esse texto se apagasse com um único clique, ou seja, ao clicar uma vez no campo do combobox esse texto sumisse..Eu tentei encontrar outros posts relacionados a isso mas não encontrei. Tentei usar combobox1.ClearSelection; mas não foi o que eu queria. Alguém pode me dar uma sugestão?

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Isso é muito simples:

quando voce criar a lista do combobox, deixe o primeiro item em branco ( vazio )

no evento OnDbClick voce coloca

procedure TForm1.ComboBox1DblClick(Sender: TObject);
begin
   ComboBox1.ItemIndex := 0;
end;

então quando voce der um click duplo com o mouse no item que estiver aparecendo, ele ficara vazio  ( na realidade ele apontara para o primeiro item da lista que é vazio )

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Conforme o nosso amigo Jhonas disse, eu também acho que seria inviável a utilização desse código no evento OnClick() (Apenas um clique), pois para poder selecionar os itens que estarão no ComboBox será necessário clicar nele antes, e isso vai disparar o evento OnClick que vai 'Limpar' o texto do combobox, fazendo com que você não consiga escolher nenhum item se não o vazio.

Por isso acredito que ou você utiliza o evento OnDbClick() (Click duplo) ou então utiliza um botão auxiliar para limpar, ou ainda deixa que caso o usuário queira limpar, ele selecione a opção em branco (pra isso você precisa inserir um item em branco).

 

Agora vamos a explicação dos códigos:

procedure TForm1.ComboBox1Click(Sender: TObject);
begin
   ComboBox1.Items.Strings[ComboBox1.ItemIndex] := '';
end;

Nesse primeiro código, temos a implementação do evento disparado por um clique único. Nesse evento, temos dois códigos assim por dizer, o ComboBox1.Items.Strings[ ], pelo qual podemos manipular o texto do item cujo index for passado entre os colchetes e o outro código é o ComboBox1.ItemIndex, que nos retorna justamente qual o Index do item selecionado no combobox.

Então podemos dizer que a junção desse código nos permite manipular o texto  do item que está atualmente selecionado no combobox, e nesse caso em específico, está sendo passado um novo valor (Vazio) para esse item.

procedure TForm1.ComboBox1DblClick(Sender: TObject);
begin
   ComboBox1.ItemIndex := 0;
end;

Nesse segundo código, temos a implementação do evento disparado por um clique duplo. Como vimos no código anterior, o ItemIndex nos retorna o Index do item selecionado, mas nesse caso estamos fazendo um pouco diferente, essa propriedade tem duas vias, a de leitura e a de gravação, no primeiro código, estamos utilizando a via de leitura, que nos retorna o Index do item selecionado, nesse código aqui, estamos utilizando a via de gravação, e ela nos permite informar o Index do item que queremos que esteja selecionado, nesse caso, o Index 0 (Primeiro item do combobox) é o item em branco, então estamos dizendo que quando o usuário der um clique duplo no combobox, o item selecionado deve ser o primeiro item.

Editado por Leo_cj
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...