Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-09-2007
Avatar de arespremium
arespremium arespremium is offline
Miembro
 
Registrado: jul 2007
Posts: 48
Poder: 0
arespremium Va por buen camino
Limitar ingreso a un solo numero

Hola como se puede limitar el ingreso a un Edit con un solo caracter o numero

Es diferente hacerlo que solo reciba numero o letras?

Tambien como puedo hacer un salto, Luego que se ingresa ese unico caracter al Edit1 salta hacia el Edit2

ver_imagen

Ejemplo:
Ingreso un caracter al Edit1, luego presiono Enter y se dirige hacia el Edit2

Saludos
Responder Con Cita
  #2  
Antiguo 23-09-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola arespremium,

Existe una propiedad que te permite indicar la cantidad máxima de caracteres que se pueden expresar en un Edit. Se trata de MaxLength, y por defecto es de valor 0 (que indica que no tiene longitud máxima estrablecida). Con ella consigues lo que deseas.

Como en el Edit se recibe un string deberás hacer la transformación/comprobación de si es un entero. Hay muchas maneras de conseguir esto, se puede hacer mediante el evento OnKeyPress, con un try/except... empleando StrToInt si se está seguro de que se ha ingresado un número... en fin... muchas opciones. Si buscas en los foros notarás que hay mucha referencia al respecto. ¿Por que no pruebas con estos términos: "validar numero" o "convertir numero"?

Por otro lado, existe controles que te pueden evitar estos males. Si el número a ingresar responde a un rango definido de valores puede emplear un SpinEdit. O incluso un MaskEdit.

Sobre como simular el Tab con el ENTER. Ya fue tratado, nuevamente puedes recurrir a una búsqueda. Y como alternativa, en trucomania está el truco: "como simular TAB con ENTER".

Te recuerdo que has hecho muchas preguntas en un mismo post, preguntas que si bien hacen a tu problema/objetivo deberían haberse tratado por aparte. Esto está contemplado en la guia de estilo.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 23-09-2007 a las 19:25:31.
Responder Con Cita
  #3  
Antiguo 23-09-2007
Avatar de tazzmk
tazzmk tazzmk is offline
Miembro
 
Registrado: sep 2007
Posts: 45
Poder: 0
tazzmk Va por buen camino
Hola a todos
yo tengo algo alomejor te sirve

1.- como se puede limitar el ingreso a un Edit con un solo caracter o numero

crear un formulario, añadir un Edit y escribir el siguiente código:
Código:
Sub edit1_Keypress(KeyAscii As Integer)
    If KeyAscii <> Asc("9") Then
    'KeyAscii = 8 es el retroceso o BackSpace
       If KeyAscii <> 8 Then
           KeyAscii = 0
       End If
    End If
End Sub


Nuevo:
Código:
Private Sub edit1_Keypress(KeyAscii As Integer)
If Not IsNumeric(Chr$(KeyAscii)) And KeyAscii <> 8 Then KeyAscii = 0
End Sub
2.- como puedo hacer un salto, Luego que se ingresa ese unico caracter al Edit1 salta hacia el Edit2

Pasar de un edit a otro al pulsar Enter:

Insertar dos edit y escribir el siguiente código:

Código:
Private Sub edi1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
SendKeys "{tab}"
KeyAscii = 0
End If
End Sub

Private Sub edi2_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
SendKeys "{tab}"
KeyAscii = 0
End If
End Sub
eso seria

Última edición por tazzmk fecha: 23-09-2007 a las 19:50:13.
Responder Con Cita
  #4  
Antiguo 23-09-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Pero eso es en Visual Basic...
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #5  
Antiguo 23-09-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Gabo, me robaste las palabras.
Igualmente creo que ya arespremium tiene lo que buscaba:
MaxLength
SpinEdit (mi opción)
MaskEdit

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 23-09-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Solo quiero agregar el código que uso cuando un TEdit va a tener sólo números.

Código:
__fastcall TForm1::TForm1(TComponent* Owner)
                             :TForm(Owner)
{
    LONG dwStyle = GetWindowLong(Edit1->Handle, GWL_STYLE);
    SetWindowLong(Edit1->Handle, GWL_STYLE, dwStyle | ES_NUMBER);
}
Con esas dos líneas hago que el Edit1 sólo permita números.
Recuerden que yo programo en C++Builder, pero en Delphi se debe poder hacer también de la misma forma. Si alguien quiere traducir el código...
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.

Última edición por Gabo fecha: 23-09-2007 a las 20:19:14.
Responder Con Cita
  #7  
Antiguo 23-09-2007
Avatar de tazzmk
tazzmk tazzmk is offline
Miembro
 
Registrado: sep 2007
Posts: 45
Poder: 0
tazzmk Va por buen camino
hola, perdon me confundi con el lenguaje

aca va de nuevo pon este código en el evento OnKeyPress de tu TEdit y sólo admitirá números

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin 
  if ( StrScan('0123456789.-',Key) <> nil ) or 
     ( Key = Char(VK_BACK) ) then { BackSpace Key }
  begin 
    {Aqui tu tratamiento normal del evento}  
  end 
  else 
    Key := #0; 
end;
Responder Con Cita
Respuesta



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
Limitar número de usuarios concurrentes mlara Firebird e Interbase 0 25-11-2006 21:13:38
Una de paranoias. ¿Que pueden saber de mi solo conociendo mi numero de movil? papulo Humor 12 23-09-2005 09:23:18
Ingreso de fechas miguelb Varios 4 15-02-2005 11:55:11
Limitar el numero de Registro de una Consulta en FireBird 1.5 Abel Garcia Firebird e Interbase 3 08-12-2004 23:57:31
validar que solo entren numero luigi Varios 8 29-03-2004 21:04:44


La franja horaria es GMT +2. Ahora son las 06:16:50.


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