Cláusula de usos de DWScript

Me golpeé contra una pared con DWScript tratando de "usar" otras unidades. Ejemplo:

usos utils, qusers;
Error de sintaxis: unidad desconocida "utils" [línea: 3, columna: 20]

Cualquier ayuda sería muy apreciada.

Información adicional: también agrego a Script.Config.ScriptPaths la ubicación de los archivos, por ejemplo: "C: \ myscripts"

Información adicional2: el propósito del uso de "usos" era que "$ INCLUDE" o "$ I" tenían un problema cuando:
unit1.dws incluye unit2.dws
unit3.dws incluye unit3.dws y unit1.dws

preguntado el 10 de mayo de 11 a las 13:05

1 Respuestas

En la versión actual de SVN y posteriores, puede usar $ INCLUDE_ONCE, que incluirá un archivo solo si aún no se ha incluido (distingue entre mayúsculas y minúsculas).

Para versiones anteriores, puede usar compilaciones condicionales, como en los archivos de encabezado C:

{$IFNDEF SOME_FILE}
{$DEFINE SOME_FILE}

... the file ...

{$ENDIF}

Editar: A partir de agosto de 2011, las unidades son compatibles, deben usarse desde un script principal o desde otra unidad. Consulte tests \ BuildScripts para ver un código de muestra.

Respondido 23 ago 11, 12:08

@Eric: Me he encontrado con dificultades para usar 'usos' y nominar un archivo simple. ¿Es esto compatible con el último DWS? Descubrí que puedo incluir un archivo bien, pero no como un formato de unidad tradicional. - Brian Frost

el soporte de la unidad requiere el svn más reciente, consulte test \ BuildScripts para obtener un código de muestra. Puede "utilizar" una unidad de un guión principal o de una unidad. Una unidad se compone, como en Delphi, de un "nombre de unidad de unidad"; en la parte superior, seguido de una interfaz, implementación y terminado por un "final" opcional, no hay inicialización / finalización. Tenga en cuenta que no puede compilar una unidad aislada, debe compilarla desde un script principal. - Eric Grange

@Eric: Perfecto, gracias. Lo que me faltaba era comprender cómo exponer la fuente de la unidad al compilador. Cuando descubrí el evento 'OnNeedUnit' y lo completé, todo simplemente funciona. Muchas gracias. - Brian Frost

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.