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 13-12-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
si ya estas utilizando un TjvValidateEdit, ya no es necesario ni validar nada, ni hacer conversiones, ni programar nada...

ahora, ¿en que parte del código te marca que error?
__________________

Responder Con Cita
  #2  
Antiguo 14-12-2008
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 20
fidel Va por buen camino
Para validar edits vacíos y que no te de error al convertirlos en entero basta con poner un 0 (cero) delante del texto a convertir:

.... auxiliar:= strtoint(Trim( '0' + LbSelectorCarton.Text))
Responder Con Cita
  #3  
Antiguo 16-12-2008
Loreiev Loreiev is offline
Miembro
 
Registrado: oct 2008
Posts: 14
Poder: 0
Loreiev Va por buen camino
Unhappy Sigue el error de edit vacío

Cita:
Empezado por fidel Ver Mensaje
Para validar edits vacíos y que no te de error al convertirlos en entero basta con poner un 0 (cero) delante del texto a convertir:

.... auxiliar:= strtoint(Trim( '0' + LbSelectorCarton.Text))
Hola, que tal? prové con eso de poner 0 pero tampoco funciona, sique saltando el error de que '' no es un valor entero válido.

Este error salta cuando cierro el formulario que muestra los cartones de lotería y te permite editarlos, al aceptar los cambios da error y marca el último close dentro de este procedimiento:

Código Delphi [-]
procedure TFrmCartones.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
 if MessageDlg('Desea guardar los cambios en el cartón?',
    mtConfirmation, [mbYes, mbNo], 0) = mrYes then
 begin
  if contfila then
  begin
   if not contnum then
   begin
    showmessage('El cartón debe tener 15 números',);
    exit;
   end
   else
   begin
    if not cartondistinto then showmessage('Ese cartón ya existe')
    else
    begin
     editformato;
     EditarCarton(0+lbNumeroCarton.Value);
    end;
   end;
  end;
 end;
 Close;
end;

El código de Editar cartón es:

Código Delphi [-]
Procedure EditarCarton (num:integer);
var
i,j,k,l:integer;
Begin
 k:=0;
 l:= num - 1;
 for i:=0 to 8 do
 begin
  for j:=0 to 2 do
  begin
   numerocarton[l,k]:= strtoint(frmCartones.GrillaCarton.Cells[i,j]) ;
   inc(k);
  end;
 end;
end;


Bueno, si necistás más información avisame. Porque yo sigo igual de perdida con esto.

Gracias por sus respuestas

Última edición por Loreiev fecha: 16-12-2008 a las 00:22:32. Razón: error de formato
Responder Con Cita
  #4  
Antiguo 16-12-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
cambia el "Close" donde te marca el error por "Action := caFree;"
__________________

Responder Con Cita
  #5  
Antiguo 17-12-2008
Loreiev Loreiev is offline
Miembro
 
Registrado: oct 2008
Posts: 14
Poder: 0
Loreiev Va por buen camino
Cita:
Empezado por ContraVeneno Ver Mensaje
cambia el "Close" donde te marca el error por "Action := caFree;"
Hola, prové lo que me dijiste pero sigue dando el mismo error, sólo que ahora marca la sentencia: Action := caFree;
Se te ocurre que puede ser?

Desde ya muchas gracias
Responder Con Cita
  #6  
Antiguo 17-12-2008
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 20
fidel Va por buen camino
un 0 (cero) delante de un valor númerico no sirve para nada
EditarCarton(0+lbNumeroCarton.Value);

Tienes que ponerlo como caracter, entre comillas a la hora de
transformar el string a número para que si el edit estáa vacio
no de error al transformar un string vacio.
Creo que serría en esta línea.
numerocarton[l,k]:= strtoint('0' + frmCartones.GrillaCarton.Cells[i,j]) ;
Responder Con Cita
  #7  
Antiguo 18-12-2008
Loreiev Loreiev is offline
Miembro
 
Registrado: oct 2008
Posts: 14
Poder: 0
Loreiev Va por buen camino
Smile Resuelto el problema

Cita:
Empezado por fidel Ver Mensaje
un 0 (cero) delante de un valor númerico no sirve para nada
EditarCarton(0+lbNumeroCarton.Value);

Tienes que ponerlo como caracter, entre comillas a la hora de
transformar el string a número para que si el edit estáa vacio
no de error al transformar un string vacio.
Creo que serría en esta línea.
numerocarton[l,k]:= strtoint('0' + frmCartones.GrillaCarton.Cells[i,j]) ;
Efectivamente es como vos decís, me dí cuenta ayer que el problema no estaba donde yo pensaba (en el edit) sino en la línea

numerocarton[l,k]:= strtoint('0' + frmCartones.GrillaCarton.Cells[i,j])

donde aparecían valores nulos.

Muchas gracias a todos por sus aportes.

Saludos
Responder Con Cita
  #8  
Antiguo 12-01-2009
Avatar de miado
miado miado is offline
Miembro
 
Registrado: mar 2008
Posts: 28
Poder: 0
miado Va por buen camino
Smile algo sencillo

Puedes utilizar esto en el evento OnKeyPress del Edit;

procedure TForm1.DBEdit1KeyPress(Sender: TObject;
var Key: Char);
begin

if (StrScan('1234567890', Key) = nil) and (Key <> #8) then 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
Solo letras y numeros en edit oesteve OOP 30 28-06-2013 21:30:43
Validar numeros y letras en un Edit? danytorres Varios 12 12-11-2010 21:42:27
Validar Ingreso De Letras En Un Edit sdiaz1983 Varios 10 21-03-2008 01:16:33
Validar Edit solo Texto Elite237 OOP 13 28-07-2007 21:45:25
como se puede validar un edit para solo numeros carlos gonzalez Varios 3 30-09-2006 21:22:38


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


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