Como colocar mascara p/ numeros no EDIT?
Caros, gostaria de saber como que faço para usar o componente Edit da seguinte forma:
- Aceitar só números;
- Que os números saiam numa formatação ex.: (999,999.99);
- Os números ao serem digitados sair na direita do edit;
- Que o valor digitado saia para uma variável numérica.
Programo em clipper e a forma de fazer este processo é muito simples, será que no delphi ficou mais complicado?
Aproveitando a deixa, gostaria saber se tem algum componente que faça retangulos mas que os valores não sejam por pixels e sim por uma medida fracionária. Ex.: (metro, centimetro, milimetro... ).
Certo de ser respondido, desde já obrigado.
Pedro Arcanjo.
- Aceitar só números;
- Que os números saiam numa formatação ex.: (999,999.99);
- Os números ao serem digitados sair na direita do edit;
- Que o valor digitado saia para uma variável numérica.
Programo em clipper e a forma de fazer este processo é muito simples, será que no delphi ficou mais complicado?
Aproveitando a deixa, gostaria saber se tem algum componente que faça retangulos mas que os valores não sejam por pixels e sim por uma medida fracionária. Ex.: (metro, centimetro, milimetro... ).
Certo de ser respondido, desde já obrigado.
Pedro Arcanjo.
Anonymous
Curtidas 0
Respostas
Porttime
03/04/2003
[color=green:6dc9a8d7d5]no evento OnExit do Edit1 coloque ´Faz formatação 1,100.00´[/color:6dc9a8d7d5]
edit1.Text:= FormatFloat(´#,,0.00´, StrtoFloat(edit1.Text));
[color=blue:6dc9a8d7d5]no on exit coloque o abaixo p/ ñ aceitar de A a Z[/color:6dc9a8d7d5]
if (key in [´a´..´z´]) or (key in [´A´..´Z´]) then
key:=0;
[color=red:6dc9a8d7d5]Para valor sair em Numerico[/color:6dc9a8d7d5]
procedure TForm1.Edit1Exit(Sender: TObject);
var
valor:real; // Variavel Numerica
begin
edit1.Text:= FormatFloat(´,,0.00´, StrtoFloat(edit1.Text));
valor:=strtofloat(edit1.text);
end;
[color=darkblue:6dc9a8d7d5]Espero ter ajudado.
BlZ
Flw[/color:6dc9a8d7d5]
edit1.Text:= FormatFloat(´#,,0.00´, StrtoFloat(edit1.Text));
[color=blue:6dc9a8d7d5]no on exit coloque o abaixo p/ ñ aceitar de A a Z[/color:6dc9a8d7d5]
if (key in [´a´..´z´]) or (key in [´A´..´Z´]) then
key:=0;
[color=red:6dc9a8d7d5]Para valor sair em Numerico[/color:6dc9a8d7d5]
procedure TForm1.Edit1Exit(Sender: TObject);
var
valor:real; // Variavel Numerica
begin
edit1.Text:= FormatFloat(´,,0.00´, StrtoFloat(edit1.Text));
valor:=strtofloat(edit1.text);
end;
[color=darkblue:6dc9a8d7d5]Espero ter ajudado.
BlZ
Flw[/color:6dc9a8d7d5]
GOSTEI 0
André Batista
03/04/2003
Segui seus conselhos Porttime, mas me surgiu outro problema, se o valor for maior que 1000,00 ele apresenta erro que diz:
Is not a valid floating point value
como se o valor não fosse float, será que pode me ajudar??
Is not a valid floating point value
como se o valor não fosse float, será que pode me ajudar??
GOSTEI 0
André Batista
03/04/2003
Bem, alterei um pouco a mascara e a principio resolveu, ficou desta forma, se estiver errado, me corrijam
edit1.Text:= FormatFloat(´0.00´, StrtoFloat(edit1.Text));
valor:=strtofloat(edit1.text);
Espero ter ajudado, assim como fui
edit1.Text:= FormatFloat(´0.00´, StrtoFloat(edit1.Text));
valor:=strtofloat(edit1.text);
Espero ter ajudado, assim como fui
GOSTEI 0
G3x
03/04/2003
Uma maneira simples de resolver este problema, dependendo da sua necessidade e claro seria substituir o edit por um MaskEdit da Guia Aditional, ele tem uma propriedade chamada EditMask onde vc pode formatar facilmente a mascara.
GOSTEI 0
Carla Batista
03/04/2003
Opa G3x,
Excelente sugestão :) . Ficaria com menos código para implementar :)
Excelente sugestão :) . Ficaria com menos código para implementar :)
GOSTEI 0