PDA

Ver la Versión Completa : Utilizar Formularios Delphi en C++ Builder


pmarin
31-05-2007, 15:18:20
Hola a todos,

tengo un problema. Quiero ver si alguien me puede echar un mano
sobre este tema.

Tengo varias aplicaciones hechas en Delphi. Ahora estoy realizando
una aplicacion en C++ Builder. Para ello, pienso en reutilizar varios
formularios Delphi. Tal y como dice en el enlace que incluyo abajo
esto es posible. Basta con añadir los ficheros Pascal en el proyecto.

http://dn.codegear.com/article/10103

A partir de ese momento, el formulario esta disponible.

Pero no se como llamarlo desde C++ Builder.

La clase Delphi es TMyForm = class(TForm) y existe el puntero
Delphi a la clase

var
MyForm : TMyForm;

Pero, cuando intento llamarlo desde C++ Builder siempre obtengo
el error "Undefined Symbol 'MyForm' "

¿Alguien ha utilizado Delphi Forms desde C++ Builder?

Gracias

Pablo

pmarin
04-06-2007, 16:03:32
Ya he encontrado la respuesta por mi mismo.

Primero, el mismo BDS ha creado un fichero .hpp cuando
he incluido el formulario en el proyecto. Asi pues solo he
tenido que incluirlo dentro del codigo.

#include "MyForm.hpp"

Segundo, el C++ Builder requiere un puntero extra a clase
TMetaClass para las funciones definidas como class procedure
en Delphi.

[delphi] class procedure MyFunction( arichedit: TRichedit );

[C++ Builder *.hpp]

/* class method */ static void __fastcall MyFunction(TMetaClass* vmt, Comctrls::TRichEdit* arichedit);

[C++ Builder]

Llamada a la funcion class procedure Delphi desde C++ Builder

MyForm->MyFunction(__classid(TMyForm), RichEdit1);

Espero que esto sea de ayuda a alguien. A mi me ha costado muchas
horas de averiguar.

Un saludo

Pablo