Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-08-2005
Esau Esau is offline
Miembro
 
Registrado: may 2003
Ubicación: Canto Rey
Posts: 140
Poder: 22
Esau Va por buen camino
DLL' s con formularios

Hola Amigos... Les contare que trabajo en un empresa en donde se desarrolla con distintos productos , VB, Java, Delphi, etc... nuestra area tiene una serie de funciones y procedimiento que han sido desarrollado en delphi, decidimos entonces exportar todas nuestras funciones hacia una DLL, al inicio problemas con los tipos String, pero todo se soluciono rapido, magnifico¡¡, ahora los otros desarrolladores de otros lenguajes pueden usar nuestras funciones.
hasta alli bien , pero tambien, tenemos modulos hechos en delphi que se conectan con bases de datos, realizan operaciones con data , etc, etc, etc,
los mismos programadores en VB y Visual Fox nos pidieron los mismos modulos pero en DLL. Entonces se nos ocurrio exportarlos, pero cuando hacemos la Aplicacion de prueba que llama a la DLL funciona bien , pero al salir nos genera un error que dice "Operacion de Punteros no valida"

El Codigo en la DLL seria Asi
Código Delphi [-]
Procedure MostrarForm; StdCall; Export;
Begin
Form_Hola := TForm_Hola.Create(Application);
Form_Hola.Show;
End
y en el evento Close del formulario se destruye

Cuando lo llamo desde otra Aplicacion se muestra el formulario, realizo todas las operaciones que deseo, luego se destruye el formulario, no hay ninguna queja...pero el problema sucede al salir de la aplicacion que llamo a la DLL,
y todo empieza de nuevo...
algo estamos haciendo mal , pero no lo vemos, se aceptan sugerencias...
Gracias
Responder Con Cita
  #2  
Antiguo 01-09-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
Cita:
Empezado por Esau
en el evento Close del formulario se destruye
nunca use formularios en dll's pero esto suena muy raro.

no creo que sea correcto destruir el formulario cuando todavia esta en uso.
__________________
[Crandel]
Responder Con Cita
  #3  
Antiguo 01-09-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Cómo destruyes el formulario?

No sé cómo sea con una dll pero recuerda que lo indicado es poner Action := caFree y no Form1.Free.

// Saludos
Responder Con Cita
  #4  
Antiguo 01-09-2005
Esau Esau is offline
Miembro
 
Registrado: may 2003
Ubicación: Canto Rey
Posts: 140
Poder: 22
Esau Va por buen camino
probe con
Código Delphi [-]
   Action := caFree;
y sigue con el mismo problema...

quizas no debo poner formularios en una DLL, pero que tan cierto es esto...
Responder Con Cita
  #5  
Antiguo 01-09-2005
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Poder: 19
lpmlpm Va por buen camino
Igual me equivoco, pero yo lo pensaría de este modo:

Estas asignando como responsable de la nueva forma a un objeto Application, pero tratandose de que estas cargando el formulario desde una DLL no se ve bien claro a cual Application es a quien le va a colgar el chamaco este procedimiento... porque no puebas (ya que tu mismo te estas encargando de liberar los recursos de la forma) de crear la forma nueva, digamoslo asi, "huerfana" o dicho de otra manera "autosuficiente"

Código Delphi [-]
 Procedure MostrarForm; StdCall; Export;
 Begin
   Form_Hola := TForm_Hola.Create(nil);
   Form_Hola.Show;
 End

Sustituyendo Application por nil no estas haciendo responsable a nadie por tu formulario, asi que al cerrar tu aplicación no tendría porque respingar...supongo

Saludos
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita
  #6  
Antiguo 02-09-2005
Esau Esau is offline
Miembro
 
Registrado: may 2003
Ubicación: Canto Rey
Posts: 140
Poder: 22
Esau Va por buen camino
No tuve suerte con lo que me recomendaste... Pero seguire insistiendo con esa logica, creo que esta por ahi, el truco...
Gracias por contestar...
Responder Con Cita
  #7  
Antiguo 13-08-2006
Avatar de heroe
heroe heroe is offline
Miembro
 
Registrado: may 2006
Ubicación: Cartago, Costa Rica
Posts: 45
Poder: 0
heroe Va por buen camino
Ayuda con Forms y Databases en Dlls

Hola,

Tengo el problema de poner un form con conexión a base de datos dentro de una dll. El problema que me da es que se pierde la conexión. ¿Cómo puedo solucionarlo, por favor?

email: fernandosolis5@gmail.com
Responder Con Cita
  #8  
Antiguo 10-12-2006
Avatar de Albano
Albano Albano is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nogales, Sonora, Mexico
Posts: 422
Poder: 20
Albano Va por buen camino
Hola a todos, tengan un buen dia.
Estoy trabajando con Delphi 2005, quiero conectarme a una base de datos de MySQL con componentes ADO desde una DLL, supongo que para lograrlo necesito una forma para poner los componentes en ella, así que estoy probando el código que nos dejó nuestro compañero Esau, pero la siguiente línea
Código Delphi [-]
FormDLL in 'FormDLL.pas' {Form_FormDLL};
Fué cambiada en mi laptop por esta
Código Delphi [-]
FormDLL in '..\..\Mis documentos\Borland Studio Projects\FormDLL.pas' {Form_FormDLL};
y aquí me marca el siguiente error:
Cita:
[Fatal Error] Componentes.dpr(6): F1026 File not found: 'FormDLL.dcuil'
Soy un novato en esto y no entiendo nada, ni la línea ni el error, alguien me puede ayudar?
Responder Con Cita
  #9  
Antiguo 11-12-2006
Avatar de Albano
Albano Albano is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nogales, Sonora, Mexico
Posts: 422
Poder: 20
Albano Va por buen camino
No importa el código que ponga en esa línea, siempre me marca el mismo error, también me pasa con cualquier otro código que no haya empezado yo, si quiero abrir un ejemplo que me pasaron me aparece el mismo error, ya sea un proyecto normal de delphi o un proyecto de DLL... Alguien sabe que es lo que esta pasando? Es algo del delphi 2005?
Responder Con Cita
  #10  
Antiguo 11-12-2006
Avatar de Albano
Albano Albano is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nogales, Sonora, Mexico
Posts: 422
Poder: 20
Albano Va por buen camino
Creo que el error me salia porque estaba tratando de usar código de proyectos de Win32 en proyectos de .Net...
La verdad, no entiendo mucho de esto, pero ahora estoy haciendo proyectos para Win32 y me cambió el error... Ahora es el siguiente:
Cita:
[Fatal Error] LaDLL.dpr(6): F1026 File not found: 'FormDLL.dcu'
A final de cuentas se parece, solo cambia la extensión... No entiendo nada
Responder Con Cita
  #11  
Antiguo 11-12-2006
Avatar de Albano
Albano Albano is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nogales, Sonora, Mexico
Posts: 422
Poder: 20
Albano Va por buen camino
Creo que estoy empezando a enteder:
La DLL utiliza una forma externa? Creo que la respuesta es "si", así que creé esta forma en otro proyecto y la puse en el mismo directorio en el que tengo mi proyecto de DLL y ya no aparece ese error... ahora me aparece el siguiente:
Cita:
[Error] LaDLL.dpr(11): E2003 Undeclared identifier: 'Form_FormDLL'
en la siguiente parte del código:
Código Delphi [-]
  Form_FormDLL := TForm_FormDLL.Create(nil);
  Form_FormDLL.ShowModal;
  Form_FormDll.Hide;
  Form_FormDLL.Free;
Ahora qué pasa?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 08:06:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi