inputbox somentes dados numéricos é possivel?
Olá pessoal, por acaso o inputbox tem proteção para dados numericos.
Exemplo: 100,58 somente aceitar números e não permitir dados do tipo string.
Abraços.
Exemplo: 100,58 somente aceitar números e não permitir dados do tipo string.
Abraços.
Fabiotb
Curtidas 0
Respostas
Marco Salles
11/10/2006
acho que não.. Mas voce pode criar uma janela que se comporta como inputQuery e adicionar esta caracteristica.... Outra saida mais simples é testar a saida e informar se é ou não é un numero válido
GOSTEI 0
Fabiotb
11/10/2006
tipo, como se faz uma funcao q chama uma form e retornar o resultado da edit dessa form?
abracos
abracos
GOSTEI 0
Mahdak
11/10/2006
como nao tenho certeza, e creio que visualmente ao entrar com o valor voce nao possa fazer esse tipo de coisa com um inputbox, o que voce podeestar fazendo era tratar esses dados na saida, como por exemplo:
espero ter ajudado
abraços!
// Remove caracteres de uma string deixando apenas numeros function RemoveChar(Const Texto:String):String; var I: integer; S: string; begin S := ´´; for I := 1 To Length(Texto) Do begin if (Texto[I] in [´0´..´9´]) then begin S := S + Copy(Texto, I, 1); end; end; result := S; end; procedure TForm1.Button1Click(Sender: TObject); var saida : string; begin saida := inputbox(´validando saida´,´digite o valor:´,´´); Showmessage(removechar(saida)); end;
espero ter ajudado
abraços!
GOSTEI 0
Fabiotb
11/10/2006
Pessoal, meu amigo Everton Mateus me ajudou a desenvolver a solução do nosso proprio inputbox.
Nós criamos uma form com nome frm_inputboxps usando uma label, um edit, e um radiogroup e um botao.
(nosso objetivo é tratar o tipo de dados na edit e retorna o mesmo).
Sendo que o radiogroup utilizamos para controlar o tipo de dados (double,string,inteiro). Sendo que no evento:
procedure Tfrm_inputbox.edKeyPress(Sender: TObject; var Key: Char);
begin
case RadioGroup1.ItemIndex of
0 : begin
if not (Key in[´0´..´9´,´,´,Chr(8),chr(13)]) then Key:= #0;
end;
1 : begin
if not (Key in[´a´..´z´,´A´..´Z´,Chr(32),´,´,Chr(8),chr(13)]) then Key:= 0;
end;
2 : begin
if not (Key in[´0´..´9´,Chr(8),chr(13)]) then Key:= 0;
end;
end;
nossa funçao ficou assim:
function inputboxps(mensagem:string;tipodados:integer):string;
begin
try
frm_inputbox:=tfrm_inputbox.create(Application);
frm_inputbox.RadioGroup1.ItemIndex:=tipodados;
frm_inputbox.lblmensagem.Caption:=mensagem;
frm_inputbox.showmodal;
result:=frm_inputbox.ed.Text;
finally
frm_inputbox.free;
end;
end;
Para usar a funcao basta criar uma variavel do tipo string veja abaixo:
Var_valor:=inputboxps(´Valor da Mensalidade:´,0);
Qualquer dúvida tamos ai.
Obrigado por todos que tentaram de alguma forma em me ajudar .
Fabio Correa
Nós criamos uma form com nome frm_inputboxps usando uma label, um edit, e um radiogroup e um botao.
(nosso objetivo é tratar o tipo de dados na edit e retorna o mesmo).
Sendo que o radiogroup utilizamos para controlar o tipo de dados (double,string,inteiro). Sendo que no evento:
procedure Tfrm_inputbox.edKeyPress(Sender: TObject; var Key: Char);
begin
case RadioGroup1.ItemIndex of
0 : begin
if not (Key in[´0´..´9´,´,´,Chr(8),chr(13)]) then Key:= #0;
end;
1 : begin
if not (Key in[´a´..´z´,´A´..´Z´,Chr(32),´,´,Chr(8),chr(13)]) then Key:= 0;
end;
2 : begin
if not (Key in[´0´..´9´,Chr(8),chr(13)]) then Key:= 0;
end;
end;
nossa funçao ficou assim:
function inputboxps(mensagem:string;tipodados:integer):string;
begin
try
frm_inputbox:=tfrm_inputbox.create(Application);
frm_inputbox.RadioGroup1.ItemIndex:=tipodados;
frm_inputbox.lblmensagem.Caption:=mensagem;
frm_inputbox.showmodal;
result:=frm_inputbox.ed.Text;
finally
frm_inputbox.free;
end;
end;
Para usar a funcao basta criar uma variavel do tipo string veja abaixo:
Var_valor:=inputboxps(´Valor da Mensalidade:´,0);
Qualquer dúvida tamos ai.
Obrigado por todos que tentaram de alguma forma em me ajudar .
Fabio Correa
GOSTEI 0