Ver Mensaje Individual
  #4  
Antiguo 10-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola dimer18.

Para que acepte sólo números enteros (0-9):
Código Delphi [-]
procedure SoloNumeros(Hnd: THandle);
begin
  SetWindowLong(Hnd, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) or ES_NUMBER);
end;
...
begin
  SoluNumeros(Edit1.Handle);
end;

Para que acepte números decimales usá este código en el evento OnKeyPress:
Código Delphi [-]
procedure TForm.EditKeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in [#8,',',' ','0'..'9']) then  //quitando: #8 y ',' sirve para numeros enteros
  begin
    MessageBeep(MB_ICONERROR);
    Key:=#0;
  end;
end;

Si querés ampliar la verificación contemplando que pudieran pegar contenido desde el portapapeles, agrega este código al evento OnExit:
Código Delphi [-]
procedure TForm.EditExit(Sender: TObject);
var
  v: Double;
begin
  if not TryStrToFloat((Sender as TEdit).Text, v) then
  begin
    MessageBeep(MB_ICONERROR);
    (Sender as TEdit).SetFocus;
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 10-12-2011 a las 19:14:59.
Responder Con Cita