![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Hola,
Cita:
Cita:
|
|
#2
|
||||
|
||||
|
La idea es hacer que se produzca un EAccessViolation, pero no en la línea donde se hace el cast, sino en la siguiente. ¿Podes comprobarlo?
Si se quitase esa línea, no habría EAccessViolation, al menos no en ese punto, sino en cualquier otro que tratase de usar la propiedad Lineas del componente creado.... como dije, es algo que he hecho rápidamente y sin delphi, pero la idea es esa. Cita:
Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#3
|
||||
|
||||
|
Hola,
Sí; el ejemplo que preparaste funciona tal como esperas. Es decir, que la violación de acceso no se produce en el "cast", sino el la siguiente instrucción, que, de no existir, evitaría dicha violación de acceso, por el momento... Yo también estoy de acuerdo en que la conclusión de que el asunto estribaba en la diferencia de excepciones no era del todo correcto, o no se elaboró en su momento de la misma forma que se ha hecho en este hilo, gracias, en buena medida, a tu ejemplo. |
|
#4
|
||||
|
||||
|
Me alegra que te sea de utilidad... y mas me alegra que cumpliese su cometido sin haberlo podido probar yo antes... veo que mi comprobador interno de sintaxis va mejorando...
![]() hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#5
|
||||
|
||||
|
¡Hola a todos!
Vaya lío con esto del operador As. Primero que nada, va mi sugerencia de utilizar el término molde de tipo para referirse a "type cast". Como ya lo aclaró Antonio, el molde de tipo con el operador As, presenta dos verificaciones de seguridad; una de compilación y otra en tiempo de ejecución. Al compilar se verifica que el tipo de dato usado y el tipo de dato declarado del objeto sean clases con relación jerárquica lineal (padre-hijo, abuelo-nieto, misma clase, etc., pero no tío-sobrino, primo-primo, etc.). En tiempo de ejecución, se realiza una verificación de polimorfismo: que el objeto sea de la clase indicada, de una clase derivada de ella o un puntero nulo (Nil). Mientras que un molde de tipo clásico (yo los conocía desde Turbo Pascal), al estilo "Clase (Objeto)", no impide que el programa compile y se ejecute la sentencia donde aparezca tal expresión. Pero eso sí, el resultado puede ser impredecible si no estamos completamente seguros de lo que estamos moldeando. Me permito añadir aquí una humilde traducción al español de lo que dice la ayuda de Delphi sobre el operador As: Cita:
Al González. ![]() |
|
#6
|
||||
|
||||
|
Cita:
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#7
|
|||
|
|||
|
Cita:
Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Operador LIKE | eldiegofg | SQL | 2 | 24-08-2007 23:30:59 |
| Operador LIKE en access | maurogambo | Tablas planas | 5 | 06-09-2006 14:20:42 |
| Operador IS | Aztaroth | C++ Builder | 8 | 04-08-2004 14:44:27 |
| Operador *= | febito | SQL | 1 | 09-06-2004 21:26:43 |
| Operador @ | Tanix | PHP | 2 | 27-10-2003 10:07:14 |
|