MICHELI_MARTINS Postado Agosto 29, 2011 Denunciar Share Postado Agosto 29, 2011 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 30, 2011 Denunciar Share Postado Agosto 30, 2011 sugestão:use um componente MaskEdit por cima do Comboboxabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MICHELI_MARTINS Postado Agosto 30, 2011 Autor Denunciar Share Postado Agosto 30, 2011 como faço ? nunca tentei antes. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MICHELI_MARTINS Postado Agosto 30, 2011 Autor Denunciar Share Postado Agosto 30, 2011 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 30, 2011 Denunciar Share Postado Agosto 30, 2011 tente assimprocedure 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MICHELI_MARTINS Postado Agosto 31, 2011 Autor Denunciar Share Postado Agosto 31, 2011 tudo bem eu posso ate trocar o foco para o combobox, mas e se o usuario não clicar?acaba saindo do campo e não trava mais, esse é o problema. Ai no caso teria que ter um evento no combobox repassando para o maskedit novamente se o usuario não clicar.so que não sei como fazer. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MICHELI_MARTINS Postado Agosto 31, 2011 Autor Denunciar Share Postado Agosto 31, 2011 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 31, 2011 Denunciar Share Postado Agosto 31, 2011 existem algumas maneiras... uma delas seriaprocedure 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MICHELI_MARTINS Postado Agosto 31, 2011 Autor Denunciar Share Postado Agosto 31, 2011 ok obrigada. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
MICHELI_MARTINS
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
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.