Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Validar un TEdit..... (https://www.clubdelphi.com/foros/showthread.php?t=51465)

chileno 16-12-2007 20:38:15

Validar un TEdit.....
 
Hola a todos....

mas que nada no validar los datos ingresados a un tedit....si no es evitar pegar una serie de caracteres a este componente (teclas Ctrl + V)......hecemen un cable para sacar este problemilla....
saludos a todos....:o

fidel 16-12-2007 21:14:15

Pon en el evento OnKeyPress del edit

Código Delphi [-]
//controlar entrada solo números
  if ( StrScan('0123456789.'+chr(7)+chr(8), Key) = nil ) then  Key := #0;
  //cambiar punto decimal por coma
  if key = '.' then key := ',';
  //controlar entrada una sola coma
  for i := 1 to length(EDos.Text) do
    if ( copy(EDos.Text,i,1) = ',' ) and not ( StrScan(',', Key) = nil ) then  Key := #0;

cHackAll 22-12-2007 03:16:19

La validación es un paquete incluido :p, pero lo mejor es que el Ctrl+V no va a funcionar :cool:

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 Edit1.ReadOnly := not (Key in [#8, '0'..'9', 'a'..'z']); // etc...
end;

Lepe 22-12-2007 12:39:55

cHackAll, pero si usamos el botón derecho del ratón y Pegar, entonces si lo haría ¿no?

En esos casos pongo un popupmenu en la ventana (sin elementos popupmenuItem) y lo asigno al edit/combo/etc. Así el menú estandard de windows (Copiar, cortar, pegar) se suplanta por el mío propio, que al no tener elementos, no se muestra.

Yo hubiera usado el evento OnKeyDown, allí tienes el parámetro Shift, por lo que podrías inhabilitar el Ctrl + V, pero habilitar el Ctrl + C, no sé si servirá de utilidad en este caso.

Saludos.

georgejg 16-02-2008 18:09:31

Lepe En esos casos pongo un popupmenu en la ventana (sin elementos popupmenuItem) y lo asigno al edit/combo/etc. Así el menú estandard de windows (Copiar, cortar, pegar) se suplanta por el mío propio, que al no tener elementos, no se muestra.

Lepe me podrias ampliar la informacion sobre como suplantar el Menu estandar de Windows.

tengo un Tedit y necesito que no se pueda pegar de ninguna forma, ya impedi que me digitaran numeros y por lo tanto se bloquea el Ctrl + v.

:mad: Pero si le doy Click derecho sobre el Tedit entonces el Menu estandar de Windows le permitira al usuario pegar.

ixMike 16-02-2008 18:17:02

Tan sólo coloca al TEdit un TPopupMenu propio, incluso vacío. :)


Bienvenido, y saludos.

Por cierto, échale un vistazo a la guía de estilo ;)

David 31-10-2008 22:03:59

Hola

De otro post me han enlazado a este. He visto el código para introducir sólo numericos en el edit y si le agregas un TPopupmenu pues no funciona el pegar, que permite pegar strings.

Pero ahora tengo la pregunta. No habría una forma de que si el portapapeles tuviera un número válido, si se pudiera pegar con ctrl+v o botón derecho, pegar.

Edito, porque me surge un duda, si pones un punto se convierte en coma, perfecto, pero si pulsas la coma, no se añade nada, no te deja, ¿Qué habría que añadir en el código para permitir también la coma?

David 31-10-2008 22:10:36

lo de la coma ya lo he averiguado.

Ahora que permita pegar sólo numeros, y si no es número que no permita pegar, pues no tengo ni idea.;)


Me gustaría también como modificar el código, para poder insertar números negativos.

cHackAll 31-10-2008 22:19:26

Cita:

Empezado por David (Mensaje 323655)
...No habría una forma de que si el portapapeles tuviera un número válido, si se pudiera pegar con ctrl+v o botón derecho, pegar...

Puedes revisar su contenido para habilitar o no su pegado, busca "Clipbrd" ó "OpenClipboard".

Cita:

Empezado por David (Mensaje 323655)
...si pones un punto se convierte en coma, perfecto, pero si pulsas la coma, no se añade nada, no te deja, ¿Qué habría que añadir en el código para permitir también la coma?

Saludos

Edito: solo permite la posibilidad que el primer caracter sea '-'.

ContraVeneno 31-10-2008 23:08:08

¿por que no utilizar un TjvValidateEdit?

A ese control nada más le cambias una propiedad y ya no acepta caracteres, solo números, le puedes dar el formato que quieras y no necesitas hacer ninguna conversión de texto a número, ya que el control las hace solo de forma transaparente. En pocas palabras, con un TjvValidateEdit no tienes que escribir NADA de código para validarlo.

Viene en las Jedi (JVCL) que son gratis y muy recomendables.


La franja horaria es GMT +2. Ahora son las 04:32:19.

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