Mensaje    Asunto: Form en DLL Sugerencias Responder citando

Hola a todos;

Bueno soy nuevo en el manejo de las DLL y pues e creado un formulario desde una DLL, les pongo el ejemplo para que me digan si voy por el camino correcto, que me falta y como puedo mejorarlo...

este ejemplo tiene como aplicacion base un formulario con un edit y un button que al precionar el button crea desde la dll un formulario con un edit y un button.

Ahora bien, como puedo hacer que el button del formulario de la dll manipule el edit de mi formulario principal...

Archivo .cpp: uFrmDLL.dll

Código:

#include <vcl>
#include <windows>
#pragma hdrstop

#define BUILDDLL
#include "hFrmDLL.h"
#include "uMyFrmX.h"
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
        return 1;
}
//---------------------------------------------------------------------------
int MyNewForm(TForm* parent)
{
  TMyFrmX* form = new TMyFrmX(parent);
  int result = form->ShowModal();
  delete form;
  return result;
}


Archivo .h: hFrmDLL.h

Código:

#ifndef __MYDLL_H
#define __MYDLL_H
#ifdef BUILDDLL
  #define DLL_MODE __declspec(dllexport)
#else
  #ifdef BUILDAPP
    #define DLL_MODE __declspec(dllimport)
  #endif
#endif


extern "C" DLL_MODE int MyNewForm(TForm* parent);

#endif


Archivo .cpp: uMyFrmX.h

Código:

//---------------------------------------------------------------------------

#ifndef uMyFrmXH
#define uMyFrmXH
//---------------------------------------------------------------------------
#include <Classes>
#include <Controls>
#include <StdCtrls>
#include <Forms>
//---------------------------------------------------------------------------
class TMyFrmX : public TForm
{
__published:   // IDE-managed Components
        TButton *Button1;
        TEdit *Edit1;       
        void __fastcall Button1Click(TObject *Sender);
private:   // User declarations
public:      // User declarations
        __fastcall TMyFrmX(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TMyFrmX *MyFrmX;
//---------------------------------------------------------------------------
#endif


y el .cpp de mi aplicacion principal: uMainFrm.cpp

Código:

#include <vcl>
#pragma hdrstop
#define BUILDAPP
#include "uMainFrm.h"
#include "hFrmDLL.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{
  MyNewForm(this);         
}
//---------------------------------------------------------------------------


Saludos...
_________________
Dr. Kiro - Corp®
Toda la magia en solo dos numero... 1 0...