Fórum Pesquisa em campo integer com TEdit #331571
19/10/2006
0
tenho uma tabela (postgresql).. e nela tenho um campo integer.... e no form do delphi tenho um TEdit comum.... onde o usuário pode digitar tanto letras quanto numeros.... porém em alguns casos... o delphi ter q fazer uma pesquisa nesse campo integer.... mas o usuário pode ter digitado uma palavra qualquer no TEdit..
Ex:.. o usuário vai lah e digita ´FORUM´... e ele opta pelo sistema fazer a pesquisa no campo integer (as vezes sem saber)...
entaum o q ocorre..quando vou passar o parametro na pesquisa:
query.parambyname(´parametro´).value := TEdit.Text
da erro.. pq o usuário digitou letras e naum numeros.... ou os dois misturados....
tem como eu tratar isso.... se alguem tiver alguma idéia..estou no aguardo..obrigado..
Thiago Coleti
Curtir tópico
+ 0Posts
19/10/2006
Araujojunior
I: Integer;
begin
try
I := Edit.text;
except
on E: Exception do
showmessage(´Valor invalido ´ + E.Message);
end;
esse E.Message vai mostrar o erro
Gostei + 0
19/10/2006
Beto_martini
Um exemplo bem didático:
No evento OnKeyPress do edit insira o código
Var numeros:string;
begin
numeros:=´0123456789´;
if pos(key,numeros)<1 then
begin
key:=#0;
end;
end;
Com este código o edit só aceitará os dígitos numéricos.
Gostei + 0
20/10/2006
Marco Salles
if StrToInt(edit1.text) Then begin sua pesquisa.... end else inform que contem Letras no Edit
Gostei + 0
20/10/2006
Marco Salles
Troque :
por
Agora sim :lol: :lol:
Gostei + 0
20/10/2006
Pestana
na minha opnião eu utilizaria MaskEdit enves do Edit, com isso vc acrescentaria mascará nos campos que é do tipo integer ou qualquer outro tipo de campo que prescise.
no evento onEnter do MaskEdit vc definiria as mascaras, por ex.:
procedure TfrmPesq.MaskEditEnter (Sender : TObject);
begin
mskedtPesq.Clear;
if cmboxCampo.Text = ´CNPJ´ then // caso vc esteja utilizando um combobox que comtem os campo da tabela.
mskedtPesq.EditMask := ´99.999.999/9999-99;0;_´
else
if cmboxCampo.Text = ´CPF´ then
mskedtPesq.EditMask := ´999.999.999-99;0;_´
else
mskedtPesq.EditMask := ´´; // para campos que não prescisem de mascará.
end;
procedure TfrmPesq.MaskEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_Return then
Pesquisar(mskedtPesq.Text); // chama a rotina de pesquisa e envia o parametro.
end;
qualquer coisas posta ai,
flw.
Gostei + 0
20/10/2006
Thiago Coleti
por enquanto testei somente a idéia do araujojunior... mais vou testar as outras alternativas e qualquer coisa volto posta..
muito obrigado..
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)