Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 21-01-2005
Avatar de ISKANDAR
ISKANDAR ISKANDAR is offline
Miembro
 
Registrado: jun 2004
Ubicación: Argentina, Latitud 28- Longitud 59 (Resistencia)
Posts: 41
Poder: 0
ISKANDAR Va por buen camino
Post

Mirá, no sé si entendí bien lo que necesitás pero creo que es algo como esto:
Para ir validadndo si el valor ingresado (flotante) se está escribiendo correctamente, podrías crear un objeto como éste al inicio del formulario:

Código Delphi [-]
 
.
type
  TValorCelda = Class(TObject)
  private
    Numero : String;
    Puntos : Byte;
  public
    constructor Create;
    procedure Inicializar;
    function Validar(Caracter: Char): Boolean;
    function GetNumero:String;
    function NumeroAsFloat: Real;
    function GetPuntos: Byte;
  end;
.
.
.
implementation
.
.
.
procedure TValorCelda.Inicializar;
begin
    Numero:='';
    Puntos:=0;
end;
 
function TValorCelda.Validar(Caracter: Char):Boolean;
begin
    if IsNumeric(Caracter) then
        begin
        Numero:=Numero+Caracter;
        Result:=True;
        end
        else
            if (Caracter='.') AND (Puntos=0)then
                begin
                Numero:=Numero+Caracter;
                Puntos:=Puntos+1;
                Result:=True;
                end
                else
                    Result:=False;
end; 
.

Lo deberías inicializar luego de cada cambio de celda en el grid. En el metodo OnKeyPress del grid:

Código Delphi [-]
 var
    flag: Boolean;
begin
    flag:= ValorCelda.Validar(key);
    if not flag and (ValorCelda.GetPuntos>0) then //Si se cumple esto, es invalido porque ingresó 2 puntos
        ShowMessage('Ingresó 2 puntos!');
.

y una vez que hace tab o presiona enter...

Código Delphi [-]
         DataSet.Campo:=ValorCelda.NumeroAsFloat;
De este modo el valor que te devuelva NumeroAsFloat siempre es válido, y lo podés asignar a la celda, campo o donde sea que lo necesites.
Espero haber entendido bien tu pregunta , Saludos.
__________________
El que nada duda, nada sabe.
Guía de Estilo
La Otra Guía de Estilo
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 10:44:29.


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
Copyright 1996-2007 Club Delphi