Hola amigos.
Hay una situación con el compilador de Delphi XE5 que produce una falla del mismo. El más o menos conocido error
URW1154 que parece estar muy relacionado con
genéricos.
He logrado aislar el problema que se presenta en mi caso. Si alguien tiene XE6 o XE7 a la mano, le agradecería que me ayudara a comprobar si este defecto sigue presente en esas versiones del compilador. La prueba es muy sencilla. En un proyecto que contenga dos unidades (Unit1 y Unit2), hay que escribir el siguiente código:
[archivo anexo más abajo]
Al compilar se presenta el mensaje:
[dcc32 Fatal Error] ... F2084 Internal Error: URW1154
Como sabemos, estos errores poco comunes se producen en situaciones donde el compilador no logra transformar de forma adecuada el código fuente. Generalmente por darse una serie de circunstancias que se pasaron por alto en su desarrollo. Eventualmente, Embarcadero corrige el problema con algún parche o en las siguientes versiones. Mi duda principal es si este caso en particular ya fue resuelto en Delphi XE6 y XE7, por lo cual pido la colaboración de quienes tengan alguna de esas versiones. Algunos reportes de QualityCentral hablan de este error, pero no en las circunstancias que aquí presento (o no lo encontré). Como ven el código es bastante sencillo, y la solución sería evitar usar
parámetros objetos genéricos con valor predeterminado (o sea, quitar el "= Nil"), con la desventaja de que el parámetro en cuestión ya no podría ser opcional, aunque esto puede compensarse un poco creando dos
sobrecargas de mismo método.
¿Me ayudan a comprobar si esto sigue presente en XE6 y XE7? Pongo este enlace a una imagen que ilustra el problema:
https://twitter.com/algonzalez74/sta...998592/photo/1
Espero su ayuda; no sólo es para mí, sino también para los que vengan después de mí.
Un saludo.
Al.
P.D. Uso Delphi XE5, Update 2.