Ver Mensaje Individual
  #14  
Antiguo 17-02-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por ixMike Ver Mensaje
...informar que esa función en Delphi 3 no existe. Me picó la curiosidad, quisa llamarla... ¡y no estaba!

¿Por qué la incluyeron después, entonces?...
¡Momento! Esta no es una función que podamos llamar escribiendo su nombre. Es parte de la nombrada Magia del Compilador, una serie de funciones "privadas" que el compilador usa en sustitución de estructuras de código comunes.

Por ejemplo, sé que si escribimos una sentencia como:
Código Delphi [-]
Record1 := Record2;
El compilador la transformará en una llamada a la función _CopyRecord.

La función _CopyObject me despierta dos dudas fundamentales:
1. ¿Dónde/cuándo/cómo/para qué la usa el compilador?
2. ¿Por qué _CopyObject llama una sola vez a _CopyRecord, cuando, analizando el código de ambas funciones y haciendo pruebas, tal parece que eso no es suficiente y pareciera que debería llamar a _CopyRecord por cada clase en la herencia del objeto en cuestión?

Desconozco qué versiones de Delphi no incluyen el código fuente de la emblemática unidad System, pero lo que sí es seguro es que en varias versiones, como la 7 y algunas anteriores, podremos encontrar el código fuente de tales funciones si abrimos ese archivo .pas.

Saludos.

Al González.

Última edición por Al González fecha: 17-02-2008 a las 00:24:13.
Responder Con Cita