Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda formatfloat para un TEDIT (https://www.clubdelphi.com/foros/showthread.php?t=70472)

Rofocale 22-10-2010 17:56:51

Ayuda formatfloat para un TEDIT
 
Hola a todos quisiera saber como puedo hacer para para formatear un TEdit para que solo pueda escribir en el con decimales asi por ejemplo 58.50 - 4.50 - 1,200.50 y si ingreso 1,200.58998 o 58.507864 me diga que debe de ingresar la cantidad adecuada.. gracias

microbiano 22-10-2010 18:47:42

respuesta
 
hay un componente que se llama NumEdit, el cual te adjunto hay uno que sirve para cantidades enteras, y otro para cantidades con decimales, espero te sirvan y espero no violar las reglas del foro al pasar el componente.

Rofocale 22-10-2010 19:38:59

Hola lo que necesitaba era hacerlo con un TEdit queria saber como se puede hacer es para un trabajo en la universidad no queria un componente que me lo haga todo..
de todas maneras gracias

a ver si me ayudan en como puedo hacer este codigo para que el tedit haga lo que dije

:(

BlueSteel 22-10-2010 20:20:47

en parte te puede servir esto...

Código Delphi [-]
If Key = #13 Then vDes.SetFocus;
If Key='.' Then Key:=',';
If Pos(',',vCtd.Text)=0 Then
        If not (Key in ['0'..'9',',',#8]) Then Key:=#0
          else Exit
  else
       If not (Key in ['0'..'9',#8]) Then Key:=#0;

hay que ponerlo en el evento onKeyPress del Edit

Salu2:p:D

ecfisa 22-10-2010 22:15:18

Hola Rofocale.

Según entiendo la consigna es, que permitas ingresar números, el separador coma para miles y
el punto para decimales. Limitandodose estos últimos al número de dos.

Te pongo un código que no intenta ser un analizador de expresiones. Es sólo para aproximarte una
idea, las demás comprobaciónes las podés implementar.
No comprueba si ingresas dos puntos o cinco comas. Sólo verifica que no pongas un punto o coma
al iniciar, y tál como te piden, admite sólo dos decimales luego del primer separador decimal.

Código Delphi [-]
procedure TForm1.EditKeyPress(Sender: TObject; var Key: char);
var
  NDec: integer;
begin
  NDec:= 0;
  with Sender as TEdit do
  begin
    if (Pos('.', Text+Key) > 1) then  // Text+Key: necesario por que todavía Key no esta en Text
      NDec := Length(Text+Key) - Pos('.',Text+Key);
    if (Key in ['.',',']) and (Length(Text+Key) = 1) then
      NDec:= 3;  // no '.' o ',' al inicio
    if (not (Key in[',','.','-','0'..'9']) or (NDec > 2)) and (Key<>#8) then
    begin
      Key:= #0;
      MessageBeep(MB_ICONERROR);
      SetFocus;
    end;
  end
end;


Saludos. :)


La franja horaria es GMT +2. Ahora son las 01:10:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi