PDA

Ver la Versión Completa : depurar librerias que no se utilizan en un form


darkbits
25-05-2016, 23:19:24
un saludo al club

hice una aplicación bastante grande, eh colocado al los form 's muchos componentes, de los cuales fui depurando bastante en el form ambiente gráfico, porque no los utilizare pero cuando veo en código
unit SistemGo;

interface

uses
me encuentro con muchos de esos componentes que puse al los form 's que siguen, y lo hacen mas pesado mi aplicación los que conozco voy eliminando de USES uno por uno pero hay muchísimos que no se si participan en la aplicación

mi consulta es hay alguna forma de depurar esas librerías que no están participando de mi aplicación en USES, algo automático, de lo contrario tendré que hacerlo manualmente, para que pueda ser mas liviano

Casimiro Notevi
25-05-2016, 23:28:34
¿Con "depurar" quiéres decir "eliminar"/"borrar"/"quitar"?

Las cnwizards (http://www.cnpack.org/index.php?lang=en) tienen una utilidad para ello.

darkbits
25-05-2016, 23:32:30
tengo asi uno de los form

unit PanelPri;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, acPNG, Vcl.ExtCtrls, Vcl.Buttons,
sSpeedButton, sPanel, Vcl.ComCtrls, sPageControl, System.ImageList,
Vcl.ImgList, acAlphaImageList, Data.DB, sMaskEdit, sCustomComboEdit,ShellApi,
sToolEdit, Vcl.Mask, Vcl.StdCtrls, AdvObj, BaseGrid, AdvGrid, Vcl.Grids,
Vcl.Samples.Spin, RxToolEdit, RxCurrEdit, Vcl.DBGrids, Vcl.DBCtrls,ups,uiapp,
sSkinManager, DBAdvGrid, Vcl.Menus, frxClass, frxDBSet, frxBarcode,
frxGradient, Vcl.Imaging.jpeg, Vcl.AppEvnts;


muchos de ellos no participan en la aplicación, hay alguna forma de que delphi pueda quitarlo de USES los que no intervienen en la aplicación? o a eliminar uno por uno...

en USES solo quiero que estén los que participan en mi aplicación...

Casimiro Notevi
25-05-2016, 23:35:17
Pues eso...:
Las cnwizards (http://www.cnpack.org/index.php?lang=en) tienen una utilidad para ello.

darkbits
25-05-2016, 23:59:54
ya descargue cnwizards sabe que utilidad utilizar ? para mi es nuevo...

darkbits
26-05-2016, 00:23:08
tiene muchas cosas esta aplicación, lo cambia de nombres a cada objeto que sale,
yo tengo DX10 en tu experiencia Casimiro Notevi es recomendable utilizar Las cnwizards, no me quedo con mi DX10 limpio

gracias por tu respuesta

Casimiro Notevi
26-05-2016, 00:29:48
Puedes habilitar/deshabilitar todas las opciones que quieras.

Casimiro Notevi
26-05-2016, 00:31:21
Uses cleaner.

http://www.cnpack.org/images/cnwizards.gif

Delphius
26-05-2016, 01:59:02
De todas formas que estén en el uses no quiere decir que se incluya en el ejecutable final.
El compilador solito detecta que necesita y toma de cada unidad lo justo y necesario.

Es notable destacar que Lazarus solito avisa cuando una unit no se utiliza. Me extraña que Delphi al día de hoy no lo haga :rolleyes:

Neftali [Germán.Estévez]
26-05-2016, 08:50:14
Otra opción segura 100% es "Mover" o "renombrar" los fuentes y los packages de esos componentes que no utilizas para que la compilación no los encuentre.
De esa forma seguro 100% que no te olvidas ninguno.

Una vez acabado y compilado vuelves a restaurar los packages/sources a su lugar original.

dec
26-05-2016, 16:35:47
Hola,

Lo que yo suelo hacer cuando creo un nuevo formulario es borrar todas las unidades excepto la única necesaria: "Forms". A partir de ahí todo lo que se va añadiendo está más o menos controlado, de hecho mis "uses" son parecidas a esta (tomada al azar):


uses
// Delphi
System.Classes,
System.Generics.Collections,
System.RegularExpressionsCore,

// I18n
i18nCore,
i18nLocalizer,

// Project
AppBuilder.Shared.UserFunction,
AppBuilder.Shared.PluginFunction,
AppBuilder.Shared.AppActionsConsts;


De este modo siempre puede quedar algo olvidado, pero, más o menos se lleva cierto control.

rocksoft
26-05-2016, 19:10:45
Buenas

yo lo que hago

copio todas las unidades:

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, math, cxGraphics, Vcl.StdCtrls, cxButtons, Vcl.ExtCtrls, Vcl.Grids, Vcl.DBGrids,
Data.DB, dbisamtb, ComCtrls, URLMon, StrUtils, IdBaseComponent, IdAntiFreezeBase, Vcl.IdAntiFreeze, System.Zip,
ShlObj, ShellAPI, ActiveX, Vcl.Mask, Vcl.DBCtrls, Vcl.Samples.Gauges, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP;

y despues las borro todas menos una y le doy a compilar. Apartir de aqui ya se encargara Delphi de decirme lo que le falta o lo genera de forma automatica