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 18-09-2011
NovatoEnObjetos NovatoEnObjetos is offline
Miembro
 
Registrado: jul 2007
Posts: 23
Poder: 0
NovatoEnObjetos Va por buen camino
Ejecutar form de un dll

Hola amigos del foro tengo una duda que seguramente para ustedes sera algo muy simple...
Tengo un dll pero no sé como ejecutarlo y mostrarlo en pantalla.

Código Delphi [-]
library Proyecto;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  SysUtils,
  Classes,
  Main,
  Forms,
  pantalla in 'pantalla.pas' {miform};

{$R *.res}

function miform(xMain : TFMain) : TForm ;
begin
 result := Tmiform.Create(XMain) ;
end ;


exports miform;
begin
end.


agrego el codigo que tengo para ver si me pueden ayudar(eso no lo dudo).
Y de antemano agradesco

Última edición por NovatoEnObjetos fecha: 18-09-2011 a las 00:54:02. Razón: no aplique bien la sintaxis delphi
Responder Con Cita
  #2  
Antiguo 18-09-2011
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Intenta este codigo...

Código Delphi [-]
function MiForm(AppHandle:THandle):Boolean;
begin
       application.Handle:=AppHandle;
       With Tmiform.Create(Application) do
       begin
              ShowModal;
              Free;
       end;
      Result:=True;
end ;
exports Miform;
begin
end.

Para llamar a la Funcion MiForm
Código Delphi [-]
MiForm(Application.Handle);

Saludos
Responder Con Cita
  #3  
Antiguo 18-09-2011
NovatoEnObjetos NovatoEnObjetos is offline
Miembro
 
Registrado: jul 2007
Posts: 23
Poder: 0
NovatoEnObjetos Va por buen camino
No entiendo

Digamos que agrego un boton y lo unico que sé es el codigo fuente del dll y su directorio, como puedo mandar a llamar a ese form desde mi aplicacion?,
nose si deba de haber algun loadlibrary('nombredeldll') y de ahi algo mas, he intentado tu codigo pero nomas no me sale, y es que de hecho la parte donde dice pantalla in 'pantalla.pas' {miform};
es de la declaracion del form que quiero visualizar, este
por dentro se llama miform.
Digamos que tengo el dll, pero no tengo el ejecutable que
lo mande a llamar
Responder Con Cita
  #4  
Antiguo 18-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por NovatoEnObjetos
lo unico que sé es el codigo fuente del dll
No se entiende bien lo que tienes ni lo que quieres, explica detalladamente, por favor.
Responder Con Cita
  #5  
Antiguo 18-09-2011
NovatoEnObjetos NovatoEnObjetos is offline
Miembro
 
Registrado: jul 2007
Posts: 23
Poder: 0
NovatoEnObjetos Va por buen camino
Solo tengo el código fuente del dll

Osea lo que quiero decir es que solo tengo el código fuente del dll y el dll compilado. El código fuente es el que puse al principio del tema. Sin cambiarle nada al código fuente del dll, lo que quiero saber es como lo mando a ejecutar desde una aplicacion nueva, por decirlo asi, el codigo para la aplicación nueva que ejecute el dll es la que no tengo y agradecería me ayudaran a encontrarla.
Obviamente tengo el dll compilado, pero la forma o la manera de mandarlo a ejecutar no la sé.
Espero haberme explicado
Responder Con Cita
  #6  
Antiguo 28-09-2011
NovatoEnObjetos NovatoEnObjetos is offline
Miembro
 
Registrado: jul 2007
Posts: 23
Poder: 0
NovatoEnObjetos Va por buen camino
No puedo cambiar el codigo del dell

Nose si me explique mejor, pero es que tengo alrededor de 100 proyectos de dll´s con la misma estructura, y no puedo o quisas mas bien no quiero cambiar el codigo de los dll´s, para poder ejecutarlos.
Lo que quiero es ejecutar los dll sin cambiarle nada a ellos, mas bien lo que no tengo es el codigo fuente del ejecutable que los mande a llamar.
Responder Con Cita
  #7  
Antiguo 28-09-2011
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
En la unidad de tu aplicación donde quieras usar tu función, pon esta declaración:

Código Delphi [-]
function miform(xMain : TFMain): TForm; external 'proyecto.dll';

Con eso ya puedes usar la función miform que está dentro de la biblioteca proyecto.dll. Ten en cuenta que esta biblioteca debe estar disponible al momento de arrancar el programa, lo cual logras poniéndola en algún directorio del PATH de Windows o en el mismo directorio que el ejecutable.

// Saludos
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ejecutar Rave Designer sin ejecutar IDE Delphi rmendoza83 Impresión 0 09-01-2009 19:44:56
llamar al evento click de un boton q se encuentra en un form desde otro form TURBOIGOR OOP 6 02-12-2008 14:50:16
Como llamar form desde otros form y regresar a la linea que se estaba ejecutando Willy Rodrigo C++ Builder 1 03-08-2007 19:36:23
Como ejecutar un evento antes de mostrar un form hperez Varios 5 18-05-2007 07:12:25
Es posible ejecutar en un form de delphi una aplicacion ? cso2000 Varios 2 18-07-2005 15:46:09


La franja horaria es GMT +2. Ahora son las 15:55:58.


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