Jump to content
Fórum Script Brasil
  • 0

(Resolvido) combobox com mascara


MICHELI_MARTINS

Question

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 to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...