Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-02-2008
Avatar de RoyTan
RoyTan RoyTan is offline
Miembro
 
Registrado: oct 2003
Ubicación: Mijas - Málaga
Posts: 121
Poder: 23
RoyTan Va por buen camino
Hola Dec.

Seguramente tienes razón, pero lo he utilizado en algunas ocasiones y me da muchos problemas, es un componente que no entiendo muy bien, quizas sea por eso.

Gracias pero prefiero no utilizarlo, no me ha ido muy bien con el.

Gracias de todas formas.
Responder Con Cita
  #2  
Antiguo 02-02-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var pos: Cardinal;
begin
 with Sender as TEdit do
  begin
   pos := System.Pos(',', Text);
   if not LongBool(Pos) then Dec(Pos);
   ReadOnly := not (Key in ['0'..'9', ',', #8]) or
               (Pos <> $FFFFFFFF) and (Key = ',') or
               ((Key <> #8) and (Pos < (SelStart - 1)));
  end;
end;
Responder Con Cita
  #3  
Antiguo 02-02-2008
Avatar de RoyTan
RoyTan RoyTan is offline
Miembro
 
Registrado: oct 2003
Ubicación: Mijas - Málaga
Posts: 121
Poder: 23
RoyTan Va por buen camino
Talking

Muchas Gracias chackAll.

Un codigo perfecto.

Funciona a las mil maravillas.

Gracias.
Responder Con Cita
  #4  
Antiguo 02-02-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por cHackAll Ver Mensaje
Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var pos: Cardinal;
begin
 with Sender as TEdit do
  begin
   pos := System.Pos(',', Text);
   if not LongBool(Pos) then Dec(Pos);
   ReadOnly := not (Key in ['0'..'9', ',', #8]) or
               (Pos <> $FFFFFFFF) and (Key = ',') or
               ((Key <> #8) and (Pos < (SelStart - 1)));
  end;
end;
Epale amigo cHackAll, probé el código y funciona muy bien, pero le he dado mas de dos repasadas y NPI que estas haciendo, , bueno algún día lo entenderé....

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #5  
Antiguo 03-02-2008
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.503
Poder: 23
MAXIUM Va camino a la fama
Muchisimas gracias por vuestro código, dime como puedo modificarlo para además solo permita valores negativos es decir solo un singno '-'

Yo usaba este código:
Código Delphi [-]
If key in ['-',','] then
     case key of
          '-': if (length((sender as TEdit).Text)>0) then
               if ((pos('-',(sender as TEdit).Text)<>0) or
                  ((sender as TEdit).SelStart >0))
               and
                  ((sender as TEdit).SelLength <> length((sender as TEdit).Text))
               then key:=#0;
          ',': if ((pos(',',(sender as TEdit).Text)<>0) and
                  (pos(',',(sender as TEdit).SelText)<>0))
               xor
                  (pos(',',(sender as TEdit).Text)<>0) or
                  ((length((sender as TEdit).Text)>0) and
                  ((sender as TEdit).Text[length((sender as TEdit).Text)] = '-')) or
                  ((sender as TEdit).SelLength = length((sender as TEdit).Text)) or
                  ((sender as TEdit).SelStart = 0)
               then key:=#0;
     end
     else if not (key in ['0'..'9',#8]) then key:=#0;
Responder Con Cita
  #6  
Antiguo 03-02-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 22
keyboy Va por buen camino
Cita:
Empezado por cHackAll Ver Mensaje
Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var pos: Cardinal;
begin
 with Sender as TEdit do
  begin
   pos := System.Pos(',', Text);
   if not LongBool(Pos) then Dec(Pos);
   ReadOnly := not (Key in ['0'..'9', ',', #8]) or
               (Pos <> $FFFFFFFF) and (Key = ',') or
               ((Key <> #8) and (Pos < (SelStart - 1)));
  end;
end;
Curioso código. Creo que podríamos agregar esta condición:

Código Delphi [-]
((Key = ',') and (Length(Text) - SelStart > 2)

Para evitar que alguien escriba 1234, mueva el cursor tres lugares hacia atrás y escriba una coma.

Bye
Responder Con Cita
  #7  
Antiguo 03-02-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Hay muchos componentes numéricos, creo debería usarse alguno, de la JVCL, RxLib, torry.net, etc.

Si usas el botón derecho y pegar, verás que no se produce el evento OnkeyPress/down, así que tendrás que validar ese texto de nuevo, o añadir un popup al edit sin elementos (para eliminar el popup de windows).

De todas formas, siempre tendrás que convertir ese texto a número; usando un componente especializado, tendrás:
edit1.AsFloat;
edit1.AsInteger;
etc.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Unir Edit con Edit Caral Varios 8 17-11-2006 21:37:35
Decimales Luis Alberto Varios 1 19-05-2006 16:40:25
problemas con el el .Edit: qryCONSULTA.Edit McRose Conexión con bases de datos 3 07-06-2005 15:46:39
Ingresar sólo decimales en un Edit noeres Varios 10 06-12-2004 00:32:11
Decimales alexisns Conexión con bases de datos 2 22-06-2003 21:45:40


La franja horaria es GMT +2. Ahora son las 00:11:04.


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