Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Utilizar Formularios Delphi en C++ Builder (https://www.clubdelphi.com/foros/showthread.php?t=44227)

pmarin 31-05-2007 15:18:20

Utilizar Formularios Delphi en C++ Builder
 
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


La franja horaria es GMT +2. Ahora son las 23:07:48.

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