![]() |
Error en validacion
Estimados, tengo un error mientras intento validar por intermedio de recorres los componentes de mi formulario
La idea es recorrer los componentesw Edit y verificar los que tengan tag = 88, entonces esos componentes validarlos que tengan algo escrito.
El error que me arroja dice lo siguiente Project1.exe raised exception class EAccessViolation with message "Access violation at address 004270FF in module "project1'. Si alguien sabe de que se trata este error o ve algun error importante en mi codigo seria tan amable de decirme, gracias desde ya. Atentamente Ilich Hernandez. |
¿Dónde se carga form10?... Porque aparentemente se trata de una variable local, que nunca fue iniciada...
|
Form10 es el formulario donde estoy trabajando..... necesito inicializarlo ??
|
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 |
Voy a probar lo que me dices a ver si mejora esto.... gracias
|
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.
|
Si Form10 es el formulario con el que estas trabajando,no necesitas volver a declararlo dentro de las VAR LOCALES a esteprocedimiento, ya que ocultas el verdadero Form10, que seguramenteesta definido mas arriba en tu programa. Prueba quitar la declaracion del Form10 de las VAR de esteprocedimiento... Saludos, ojala te sirva... |
Short Circuit Boolean Evaluation
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..
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 ! |
| La franja horaria es GMT +2. Ahora son las 14:52:57. |
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