![]() |
Uses en Interface e Implementation
Amigos, buenas tardes, mi pregunta es: Cual es la diferencia de usar por ejemplo "SysUtils", declarada en el Uses de la parte Interface o en el Uses de la parte Implementation.
De antemano agradezco las respuesta que me puedan dar. |
Para lo que concierne a la unidad donde esté declarada no hay diferencia como no sea la obvia de no poder usar elementos de la otra unidad antes de su inclusión.
La utilidad radica en que las unidades no pueden referirse circularmente una a la otra en la sección interface; por lo menos una de ellas debe poner la referencia en la sección implementation. La verdad es que si bien tengo una vaga idea de por qué esto es así no lo sé cabalmente. Me parece que tiene que ver con el hecho de que en Delphi el compilador es de "un sólo paso", es decir, sólo recorre el código una vez para compilarlo. Admitir referencias circulares me parece que obligaría al compilador a dar dos vueltas como mínimo. Según alguna vez leí esto es lo que hace la gran diferencia en tiempo de compilación entre Delphi y, por ejemplo, C. Sin embargo me encantaría que alguien más versado diera luz sobre el asunto. // Saludos |
Tarde pero seguro, explicacion muy sencilla del Sr. Marcus Cantu
" La cláusula uses, al principio de la sección de interfaz, indica a qué otras unidades tenemos que acceder en la porción de interfaz de la unidad. Esto incluye las unidades que definen los tipos de datos a que nos referimos en la definición de otros tipos de datos, como las componentes dentro de un formulario que estemos definiendo. La segunda cláusula uses, al principio de la sección de implementación, indica otras unidades, a que necesitamos acceder sólo en el código de implementación. Cuando necesite referirse a otras unidades del código de las rutinas y métodos, deberá añadir elementos en esta segunda cláusula uses, en vez de hacerlo en la primera. Todas las unidades a que se refiera deben estar presentes en el directorio del proyecto o un directorio de la ruta de búsqueda (puede establecer la ruta de búsqueda de un proyecto en la página Directories/Conditionals del cuadro de diálogo Options del proyecto)." Dejo enlace: http://www.marcocantu.com/epascal/Spanish/ch11unit.htm Cita:
|
Hola.
Cita:
Estuve investigando el por qué de la limitante sin resultado. No obstante, me parece muy razonable la explicación de roman: Cita:
Saludos. |
Y es que lo que comenta Marco Cantú realmente se refiere al buen uso de las cláusulas uses, mas no da una explicación de porqué es así.
// Saludos |
Algunas veces me he puesto a investigar eso y siempre lo he dejado sin averiguar nada. Quedará como una leyenda para la historia.
|
La franja horaria es GMT +2. Ahora son las 21:07:31. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi