PDA

Ver la Versión Completa : formato decimal


reina
09-11-2005, 16:21:31
Hola bueno quisiera saber como hacer para que en un dbedit que se corresponde a un campo numerico..con decimales no me deje poner mas de un punto de separacion, he probado desde la tabala en agregar los campos, y en la propiedad del campo decimal poner el display format..y no me responde, me deja poner mas de un punto. Me pasa por alto la restriccion del formato que quiero que se ingrese. Quisiera saber cual es el problema o si estoy haciendo algo mal.
saludosss esperando sus respuestas

luisgutierrezb
09-11-2005, 17:06:38
Tendrias que usar un componente externo (jedi, rx, etc, etc) o hacerlo mediante codigo

fidel
14-11-2005, 21:12:43
Hola:

Por la fecha de este hilo quizás ya sea demasiado tarde pero ahí va:

Esto funciona para edit (excepto creo recordar, si se ecribe en el edit con "copiar".. "pegar")

En su evento OnKeyPress

procedure TFLibros.ESigna1EKeyPress(Sender: TObject; var Key: Char);
var
i: integer;
begin
//controlar entrada solo números y punto
if ( StrScan('0123456789.'+chr(7)+chr(8), Key) = nil ) then Key := #0;
//controlar entrada un solo punto
for i := 1 to length(ESigna1E.Text) do
if ( copy(ESigna1E.Text,i,1) = '.' ) and not ( StrScan('.', Key) = nil ) then Key := #0;
end;


Mira a ver si con DBEdit funciona algo parecido

procedure TFLibros.ESigna1EKeyPress(Sender: TObject; var Key: Char);
var
i: integer;
begin
//controlar entrada solo números y punto
DBEEdit1.Field.ValidChars :=['0'..'9','.']
//controlar entrada un solo punto
for i := 1 to length(DBEEdit1.Text) do
if ( copy(DBEEdit1.Text,i,1) = '.' ) and not ( StrScan('.', Key) = nil ) then Key := #0;
end;


Un saludo.