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

(Resolvido) combobox com mascara


MICHELI_MARTINS

Pergunta

boa tarde pessoal.

estou precisando colocar uma mascara de placa de automovel no combobox e enquanto o usuario não digitar corretamente segure o foco no combo.

alguém sabe como fazer isso?

tentei assim:

dbplaca.Text:=FormatMaskText('LLL-9999', dbplaca.Text).

ate aparece a mascara, mas quando começo a digitar a formatação desaparece e me permite digitar o que eu quizer.

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

jhonas eu ate tentei aqui ta quase, ms o restante não sei como fazer.

no primeiro instante eu foco no combo; no evendo change dele passo o valor para o maskedit.

no exit do maskedit eu travo para o usuario não colocar vazio assim:

if maskedit1.text = ' - ' then

begin

showmessage('PLACA não PODE SER VAZIA');

maskedit1.setfocus;

end

else

dbhorainicial.setfocus;

o problema agora é que ele tem que dar a liberdade para o usuario abrir o combo novamente, e ai se o usuario não selecionar nada,

continuar na rotina de travar ate que ele escolha um item do combo ou digite uma placa manualmente no maskedit.

so que com esta rotina que te passei acima, ele não deixa nem clicar no combo novamente.

alguma sugestao?

Link para o comentário
Compartilhar em outros sites

  • 0

tente assim

procedure TForm1.MaskEdit1Exit(Sender: TObject);
begin
   if maskedit1.Text = '   -    ' then
      begin
        showmessage('PLACA NÃO PODE SER VAZIA');
        ComboBox1.setfocus;
      end
   else
      ComboBox1.setfocus;

end;

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

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

jhonas, fiz assim no evento onexit do combobox:

if dbcombobox.text = '' then

maskedit1.setfocus;

ai volta o foco para a mascara deu certo.

agora, quando eu pressionar o botao cancelar ele tem que suspender essa operação, ou seja cancelar o foco e o form volta ao seu estado normal.

como eu tiro esse foco clicando no botao cancelar?

tentei:

maskedit1.clear;

mas não resolveu.

Link para o comentário
Compartilhar em outros sites

  • 0

existem algumas maneiras... uma delas seria

procedure TForm1.MaskEdit1Exit(Sender: TObject);
begin
   if maskedit1.Text = '   -    ' then
      begin
        showmessage('PLACA NÃO PODE SER VAZIA');
        ComboBox1.setfocus;
      end
   else
      ComboBox1.setfocus;

end;

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


procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
   if key = #27 then
      BitBtn1.SetFocus;
end;

procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
   if key = #27 then
      BitBtn1.SetFocus;
end;

abraço

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...