![]() |
Al abrir proyecto, hay forms que se crean solos
Buenos dias, forer@s.
Llevo ya unos dias con un caso que me trae de cabeza, y hasta que no instalé el paquete cnPack, no vi realmente las dimensiones del problema: Al abrir un proyecto concreto con mi delphi 6, se instancian automáticamente tanto el formulario principal del proyecto, como varios (8 o 10) módulos de datos. Esto sería correcto si al cerrar dicho proyecto, se estubo trabajando con esos datamodules, pero no es asi. Ejemplo: abro el dpr, y abro sólo una unit, que en el uses no tiene ni el formulario principal ni ninguno de los datamodules, pero estos si que los instancia delphi automáticamente, porque si compruebo desde un ejecutable con la función FindWindow si existe el formulario principal, me devuelve que si, que ya hay una ventana con ese nombre. El nombre del formulario principal es bastante dificil que coincida con alguna de las ventanas en el momento de la comprobación. ¿Alguna idea, sugerencia al respecto? |
Tal vez con algo de código quedaría más claro.
¿Estás ejecutando el IDE cuando haces las comprobaciones? |
Cita:
Enumero los pasos que realizo: 1) Abro Delphi 6 con los parámetros -hm -np 2) Abro el proyecto en cuestion y sólo me muestra la unit de constantes con la que cerré el proyecto antes. 3) Mediante la opción "View Forms" de la CnPack ya veo que hay instanciados 10 datamodules y el formulario principal (aparecen en rojo) 4) Sin hacer nada más en Delphi, ejecuto un exe que tengo preparado ya de antemano con la función FindWindow para que busque si hay una ventana de la clase del formulario principal, y me dice que si que hay. ¿Qué código quieres que te ponga? La búsqueda de la ventana la hago asi:
|
Hola,
se me ocurre que quizas has modificado los templates iniciales, de alguna manera... |
Pues con ese va bien, ya que he podido comprobar lo jismo que tú.;)
En mi caso hago lo mismo, pero sólo me da que el formulario está abierto cuando realmente está abierto. Es decir, cuando en el IDE lo tengo abierto. Al abrir el formulario, sólo me aparecen en rojo (en CnPack) los que realmente tengo abiertos. El problema es saber porqué al abrir tu proyecto te los está instanciando, ya que segun el comportamiento de mi Delphi no los abre (D6) y parece que cnPack tampoco. ¿Tienes algun otro experto instalado que pueda estar haciendo esto? ¿te pasa si creas otro proyecto en blanco conun par de formularios? ¿Y si a ese proyecto de prueba le añades un DM? |
Cita:
Cita:
En el resto de proyectos que tengo, eso no pasa. Cita:
Lo malo de esto, es que cuando los tengo abiertos, no puedo hacer un build del proyecto. ¿Se os ocurre algo que pueda mirar? |
¿Algun componente externo (estoy pensando an algunos de multiidioma) que pueda hacer la carga?
|
coso: ¿Cómo se modifican los templates?
disculpa, pero no se a que te refieres.:o Neftalí: pues no, no se usa ningún componente multiidioma. se usa el componente wwIntl de InfoPower 3000, pero es para cambiar los mensajes de los componentes de InfoPower. Muestro un resumen de las clases usadas en el proyecto: [Application1] File Number=2795679982 TAction=168 TActionList=6 TAppEvents=1 TBarSeries=6 TBevel=161 TBitBtn=691 TBlobField=76 TBooleanField=82 TButton=287 TChart=1 TCheckBox=764 TCheckListBox=2 TClientSocket=1 TColorDialog=15 TComboBox=149 TCopyFile=2 TDataSource=741 TDateEdit=1 TDateField=46 TDateTimeField=933 TDateTimePicker=87 TDBChart=5 TDBCheckBox=8 TDBEan=10 TDBEdit=3 TDBGrid=3 TDBImage=2 TDBLookupComboBox=8 TDBMemo=21 TDBRadioGroup=7 TDBText=613 TDesignQuickReport=2 TDirectoryEdit=11 TDirectoryListBox=1 TDistractBar=7 TdxContainer=2 TdxWinXPBar=12 TEan=4 TEasyListview=1 TEdit=360 TEditCopy=2 TEditCut=2 TEditPaste=2 TEditUndo=2 TElTree=1 TEnhancedListbox=2 TEventScrollbox=1 TfcImageBtn=5 TfcLabel=44 TfcPanel=33 TfcShapeBtn=36 TFileListBox=1 TFilenameEdit=4 TFloatField=5649 TFontDialog=13 TFontEdit=1 TFormTransitions=2 TGauge=2 TGroupBox=521 THeader=1 TIBClientDataSet=16 TIBDatabase=5 TIBQuery=12 TIBSQL=13 TIBStoredProc=1 TIBStringField=5093 TIBTransaction=9 TIBUpdateSQL=4 TIdAntiFreeze=1 TIdMessage=3 TIdPOP3=1 TIdSMTP=2 TImage=61 TImageList=33 TIntegerField=3772 TJvDBGridExcelExport=1 TJvDBSpinEdit=74 TJvDirectoryEdit=2 TJvDriveCombo=1 TJvEdit=1 TJvFilenameEdit=2 TJvGradient=3 TJvGradientHeaderPanel=22 TJvImageComboBox=1 TJvPageControl=1 TJvPanel=12 TJvProgressComponent=1 TJvRadioGroup=2 TJvSpinEdit=5 TJvTabControl=1 TJvTabDefaultPainter=2 TLabel=4209 TLabeledEdit=12 TLineSeries=55 TListBox=62 TListView=10 TMainMenu=5 TMaskEdit=6 TMemo=85 TMemoField=44 TMenuItem=987 TNotebook=3 TOpenDialog=12 TOpenPictureDialog=1 TPage=16 TPageControl=88 TPanel=1721 TpgBoton=697 TpgButton=44 TpgDBCheckBox=165 TpgDBComboBox=48 TpgDBDateTimePicker=129 TpgDBEdit=1835 TpgDBEditLookup=1074 TpgDBGrid=364 TpgDBImage=36 TpgDBLookupCombo=7 TpgDBLookupComboDialogo=2 TpgDBRadioGroup=29 TpgFormContainer=1 TpgGroupBox=72 TpgIBDataSet=150 TpgIBQuery=653 TpgIBStoredProc=216 TpgRadioGroup=27 TpgRxMemoryData=147 TpgTable=18 TPopupMenu=142 TPrintDialog=2 TPrinterSetupDialog=1 TProgressBar=4 TPsQRFilters=1 TQProgressBar=2 TQRBand=96 TQRChart=3 TQRChildBand=1 TQRDBChart=3 TQrDBEan=4 TQRDBImage=28 TQRDBText=402 TQRDLoader=1 TQrEan=1 TQRepDesigner=1 TQRExpr=18 TQRGroup=17 TQRImage=12 TQRLabel=746 TQRPreview=1 TQRShape=130 TQRSysData=49 TRadioButton=60 TRadioGroup=122 TReportDesignerDialog=2 TReportPrinterDialog=4 TRulerPanel=1 TRxCalcEdit=10 TRxCheckListBox=4 TRxDBComboEdit=5 TRxLabel=6 TRxMemoryData=7 TRxRichEdit=4 TRxSpinEdit=25 TSaveDialog=7 TScrollBox=8 TSession=1 TShape=19 TShellTree=3 TSkinData=1 TSmallintField=884 TSpeedButton=701 TSplitter=2 TStaticText=61 TStatusBar=5 TStrHolder=2 TStringField=1546 TStringGrid=3 TsuiButton=22 TsuiEdit=3 TsuiForm=3 TsuiMessageDialog=1 TsuiNumberEdit=2 TsuiPanel=6 TTabbedNotebook=2 TTabControl=6 TTabPage=7 TTabSheet=304 TTextListBox=14 TTimer=37 TToolBar=2 TToolButton=29 TUnZip=1 TUPClickSplitter=23 TUpDown=8 TWebBrowser=1 TwwDataInspector=21 TwwDataSource=1 TwwDBComboBox=63 TwwDBDateTimePicker=5 TwwDBEdit=1 TwwDBGrid=5 TwwDBNavigator=10 TwwDBSpinEdit=8 TwwExpandButton=31 TwwIButton=85 TwwIncrementalSearch=2 TwwIntl=1 TwwLookupDialog=6 TwwMemoDialog=90 TwwNavButton=60 TZip=1 |
Yo tampoco lo se muy bien...imagino que deben haber ciertos templates, aunque no lo se seguro, para crear desde cero las forms, datamodules, services, etc, y pense que, de alguna manera, podria ser que alguno de los experts que tenia instalado hubiesen modificado estos templates iniciales. De todas maneras, releyendo la pregunta, ya vi que no debian ir por alla los tiros. saludos.
|
La verdad es que no entiendo muy bien la pregunta: se te instancian 8 datamodules en un proyecto, uno concreto? en tiempo de ejecucion o de diseño? si es en tiempo de ejecucion, debe aparecer en algun lado los create, ya sea en la unit de project o bien en otro lado. Si es en tiempo de diseño, eliminandolos manualmente (tanto las referencia en la clausula unit como los ficheros .dfm, .pas en si)... se te vuelven a crear una vez cerrado y reabierto el proyecto? por otra banda...que contienen estos datamodules? estan vacios? son instancias de un datamodule creado por ti o es algo completamente nuevo? la verdad es q lo que te ocurre tiene algo raro :confused:...
|
Cita:
Mañana probaré a eliminarlos del proyecto y volverlos a incluir, a ver si asi lo soluciono. Gracias y que descanseis. |
Ya he dado con el problema y la solución:
Resulta que para hacer el programa "más vistoso", a mi jefe se le ocurrió poner un DBImage en el formulario principal de la aplicación de Gestión Comercial, para mostrar el logotipo de la empresa (es multi-empresa), y el DBImage tiene el datasource en un módulo de datos que sólo contiene DataSources (sus DataSets están en otros módulos de datos: dmcompras, dmventas, dmcobros, etc). Al quitarle en diseño el DataSource al DBImage, Delphi ya no instancia en diseño esos DataModules (el de los DataSources y el resto). Se le asigna en ejecución y ya está. |
"a mi jefe se le ocurrió poner un DBImage en el formulario principal"
El amigo Jesús siempre tan brillante. Como se nota que tiene quien le saque del atolladero. S2 |
La franja horaria es GMT +2. Ahora son las 10:26:39. |
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