Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
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 23-05-2007
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 21
luisgutierrezb Va por buen camino
para mi que el error es esto:
(TEdit(Componentes).Tag = 88))

porque estas forzando a un componente a TEdit, en el mismo if donde revisas si es un TEdit, aqui mas bien se requieren 2 ifs, el primero para revisar si es TEdit y el segundo donde ya hagas el Cast
Responder Con Cita
  #2  
Antiguo 23-05-2007
ilichhernandez ilichhernandez is offline
Miembro
 
Registrado: oct 2005
Posts: 277
Poder: 21
ilichhernandez Va por buen camino
Voy a probar lo que me dices a ver si mejora esto.... gracias
__________________
[Lo que a veces es tan facil, a veces parece imposible]
Responder Con Cita
  #3  
Antiguo 24-05-2007
jacanche jacanche is offline
Miembro
 
Registrado: may 2003
Ubicación: Campeche,Campeche,Mexico
Posts: 137
Poder: 24
jacanche Va por buen camino
Como bien dice Delphi.com.ar, es un error por que estas queriendo acceder a las propiedades de un objeto que no ha sido inicializado o creado. Puedes usar la variable global de tu forma o asignarle a Form10 la variable global de tu forma o mejor aun, haz que validar_edit, sea un metodo del objeto forma para que tu codigo quede mas o menos asi.

Código Delphi [-]
Procedure TForm10.Validar_edit();
var n : integer;
    Componentes : TComponent;
Begin
    for n:= 0 to ComponentCount -1 do
        Begin
             Componentes := Components[n];
             If ((Componentes is Tedit) and (TEdit(Componentes).Tag = 88)) then
                 Begin
                    If TEdit(componentes).text = '' then
                        Begin
                           TEdit(componentes).color := clred;
                        end;
                 end;
        end;
Showmessage('Los campos en Rojo se deben revisar y completar');
end;
__________________
Saludos

Alfredo
Responder Con Cita
  #4  
Antiguo 24-05-2007
aprendiz2 aprendiz2 is offline
Miembro
 
Registrado: dic 2006
Posts: 70
Poder: 20
aprendiz2 Va por buen camino
Short Circuit Boolean Evaluation

Código Delphi [-]
 If ((Componentes is Tedit) and (TEdit(Componentes).Tag = 88)) then


Tambien es bueno asegurarse que la configuracion del compilador tenga la variable ShortCirtcuit Boolean Evaluation en TRUE, para que no de problemas evaluaciones como la de arriba. ( Si lo pones en falso, la misma pregunta con Componentes que no son TEdit podria dar problemas impredecibles..., en la parte que sigue al AND, y el debugger no te ayudaria mucho en detectarlo ). Para mi es mejor no confiar en el ShortCircuit boolean evaluation, y escribir de forma segura )

Quizas mas seguro poner..

Código Delphi [-]
if Componentes is TEdit then
     if TEdit( Componentes ).tag = 88 then

parece lo mismo... pero no lo es... !! ( estando el ShortCirtuit en false o true, con esta forma de preguntar no hay ningun problema ).

Saludos !! Espero le sirva a alguien !
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
Error en Acces CHECK validacion JuanHC Tablas planas 0 07-03-2007 20:07:17
Validacion spaike Varios 2 19-04-2006 19:56:12
validacion halifax Tablas planas 7 06-02-2005 23:25:53
Validacion Carlex Conexión con bases de datos 1 08-09-2004 23:53:41
Validación C.I.F. Kafu Varios 2 23-05-2003 19:09:29


La franja horaria es GMT +2. Ahora son las 15:52:43.


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