Es bastante fácil encontrar todas sus dependencias externas. Simplemente ejecute el programa y abra la ventana de información de Módulos. ¿Pero cómo puedo encontrar todas mis dependencias internas? Sé que el programa mantiene una lista de todas las unidades, porque he rastreado mi camino a través del código de inicialización una o dos veces. Pero, ¿hay alguna manera fácil de acceder a esta lista desde el depurador?¿Cómo puedo encontrar todas las unidades en mi aplicación Delphi?
Respuesta
Otro, sino que forma engorrosa, es generar un archivo de mapa, que contiene una lista de todas las unidades usadas en un programa.
ver también esta respuesta: How can I find all the units in my Delphi app?
¿Ha mirado Pascal Analyzer o la versión limitada gratuita, Icarus, desde Peganza Software? Ellos crearán "informes de usos" que le indicarán qué módulo usa lo que otros, de modo que deberían proporcionarle la información que busca.
Marc
Sé de al menos dos maneras en que podría tratar de conseguir una vista de todas las unidades utilizadas en su proyecto
- CTRL-SHIFT-B abre el explorador de objetos. Si no me equivoco, aquí puedes obtener una vista de las unidades usadas. No estoy del todo seguro sobre este método y no tengo Delphi disponible para verificarlo.
- Utilice Modelmaker; Modelmaker puede darle una vista de árbol de todas las dependencias de su unidad. Mire la sección Visualizing existing code para más información.
Hay una utilidad (bastante antigua) llamada UsgParse. Construye una vista en árbol de todas las unidades referenciadas por un proyecto.
He encontrado una copia en el sitio a través de NexusDB http://coding.derkeiler.com/Archive/Delphi/borland.public.delphi.thirdpartytools.general/2004-03/0231.html
fuente: http://www.nexusdb.com/downloads/USGParse/USGParse_src.zip
binaria: http://www.nexusdb.com/downloads/USGParse/USGParse.zip
GExperts tiene una herramienta Dependencias del proyecto. Lo he usado antes cuando intento rastrear unidades usadas. No puede buscar en él, pero puede exportar la lista a un archivo CSV y buscar allí. Esto también solo enumera lo que está en la sección de usos. Si tiene un módulo incluido que no se está utilizando, seguirá apareciendo.
Uso el GExperts Dependencias del proyecto.
Con el "Used By ...", puede ver unidades incluidas pero no utilizadas por nadie. Pero no puede ver la unidad incluida en las cláusulas de uso que podrían eliminarse cuando no tienen ningún código realmente llamado.
Aquí está la ayuda:
Dependencias del proyecto experto dependencia
El proyecto le permite ver lo que las unidades utiliza una unidad particular, ya su vez qué unidades utilizar una unidad en particular. Cuando este experto se activa, analiza todo el código fuente del proyecto actual para cláusulas de uso y crea una lista de dependencias. Para ver la información de dependencia de una unidad en particular, haga clic en ella en el panel izquierdo. El panel derecho contendrá la información de dependencia. Las dependencias indirectas son unidades que son usadas por unidades usadas de una unidad en particular.
Puede actualizar la información de dependencia en cualquier momento haciendo clic en el botón Actualizar en la barra de herramientas y puede ordenar la lista de archivos haciendo clic en los encabezados de las columnas.
alt text http://www.gexperts.org/tour/project%20dependencies.png
otoh, también se pueden utilizar de Peganza's ICARUS como una herramienta de información más detallada, pero menos interactivo ...
La forma más fácil es compilar el programa y comprobar qué .dcu
fue creado por el compilador. Asegúrese de configurar el compilador para crear .dcu
en un directorio separado, por ejemplo c:\dcu
. He creado una utilidad simple que busca .pas
para cada archivo .dcu
en directorios que están en una ruta de búsqueda del compilador (que se puede leer en el archivo .cfg
, .dof
o .bdsproject
).
El depurador Delphi puede mostrar qué unidades se compilaron en un módulo (exe, dll o paquete). Puede ver esto en la vista de Módulos (Ver | Depurar Windows | Módulos). Haga clic en un módulo en el panel superior izquierdo, y el panel inferior izquierdo mostrará todas las unidades de compilación integradas en ese módulo. Si una unidad de compilación en particular se compone de varios archivos de origen (es decir, un archivo .pas y un archivo .inc), también se mostrará (cuando expanda la unidad de compilación).
Como alternativa, puede hacer que el compilador de Delphi le muestre una lista de los archivos .dcus pasados --depende al compilar un proyecto. Emitirá un archivo .d con una lista de los archivos .dcus (y .dcps) necesarios.
Puede usar un archivo MAP junto con MapFileStats, esto no solo le proporcionará todas sus dependencias, sino también la cantidad de código (y recursos) que aportarán en el ejecutable final.
Útil para detectar unidades de las que tiene dependencias, pero utiliza poca cantidad, así como para detectar unidades de "cerdo gordo", que llevan todo junto con el fregadero de la cocina.
FWIW, la reducción de las dependencias y la eliminación de cerdos no solo es beneficiosa para el tamaño del ejecutable, también es beneficioso en el futuro cuando sea el momento de actualizar a una nueva versión.
- 1. ¿Cómo puedo obtener todas las unidades USB (conectado)
- 2. ¿cómo obtener todas las rutas en mi aplicación de rieles?
- 3. Cómo encontrar una lista de todas las DLL no administradas loadad mediante mi aplicación .net administrada
- 4. ¿Cómo puedo encontrar todas las variables estáticas en mi proyecto C#?
- 5. Listado de todas las unidades USB en Linux
- 6. ¿Cómo cerrar todas las actividades de mi aplicación?
- 7. CakePHP/Jenkins/Phing - Ejecuta todas las pruebas de unidades
- 8. Delphi: cómo excluir unidades del depurador?
- 9. ¿Cómo puedo capturar todas las excepciones de una aplicación wxPython?
- 10. ¿Cómo puedo evitar todas las excepciones y proteger mi aplicación contra fallas?
- 11. ¿Cómo puedo encontrar mi php.ini en wordpress?
- 12. ¿Cómo puedo bloquear las solicitudes de China en mi aplicación?
- 13. ¿Cómo puedo obtener las estadísticas de mi aplicación en iTunes?
- 14. ¿Agregar una unidad a las cláusulas de uso de todas las unidades en un proyecto?
- 15. advertencias del compilador Delphi apuntando a unidades propias de Delphi
- 16. cómo notificar a mi aplicación cuando se muestra el escritorio/minimizar todas/todas las ventanas minimizadas?
- 17. ¿Utiliza Googlemap desde mi aplicación Delphi?
- 18. Delphi, ¿Cómo obtener todas las direcciones IP locales?
- 19. Cómo encontrar todas las bibliotecas integradas en Python
- 20. Encontrar todas las referencias en Eclipse
- 21. ¿Cómo encontrar todas las apariciones de una variable en Vim?
- 22. ¿Cómo puedo actualizar todas las tablas dinámicas en mi libro de Excel con una macro?
- 23. ¿Cómo puedo encontrar mi fuente de SVN?
- 24. ¿Dónde puedo encontrar la versión yii de mi aplicación yii?
- 25. ¿Cómo puedo encontrar todas las etiquetas para una subcarpeta de proyecto TFS en particular?
- 26. ¿Cómo ejecuto programáticamente todas las pruebas JUnit en mi aplicación Java?
- 27. ¿cómo puedo ver qué cantidad de espacio de pila se usa actualmente en mi aplicación delphi?
- 28. Sharepoint: ¿cómo puedo encontrar todas las páginas que alojan un elemento web en particular?
- 29. ¿Cómo encontrar todas las rutas vertex-disjoint en un gráfico?
- 30. ¿Cómo encontrar todas las subcadenas posibles en una cadena?
Aprendí algo nuevo hoy: '--depends' :) Siempre limpié el directorio .dcu, luego hice un' dir/b' del directorio .dcu después de una compilación. ¡El truco del depurador también está limpio! –
¿Qué versiones del compilador conocen sobre el interruptor --depende? – dummzeuch
Siempre podría usar un poco más de cerebro :-) Gracias por esta increíble respuesta. –