Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-01-2005
Aprendiz Aprendiz is offline
Miembro
 
Registrado: may 2003
Posts: 78
Poder: 21
Aprendiz Va por buen camino
Componente OCX de VB en Delphi

Buenas a todos.

El problema es que tengo un OCX que me han suministrado que está desarrollado en VB por lo que me han dicho. Me lo han pasado con un programa de ejemplo también desarrollado en Visual y funciona a la perfección. Es un OCX de conexión con una cerradura electrónica de proximidad.

Bueno para delphi lo que hago es irme a Components - Import ActiveX Control y pulso Install. El procedimiento habitual vamos. Lo instalo en el paquete de users y en teoría ya tendría que funcionar e instalarme el componente en la paleta ActiveX. Bueno pues no lo hace, no da ningún error se añade la nueva unit_TLB que crea el delphi pero no registra nada.

Este error ya ha salido por los foros más de una vez, he estado repasando antiguos mensajes, pero nunca se le dio una solución.

Repasando el _TLB que me genera el delphi, cosa que hace de manera automática, he podido ver que no genera la clase para crear un componente en Delphi, simplemente registra lo que tiene del OCX pero no crea nada nuevo, con lo cual no Registra tampoco nada en la paleta ActiveX.

La pregunta va más orientada a VB supongo, por que me da que hay que generar las OCX en VB de alguna determinada manera para que realmente sea entendible por el resto de lenguajes y no ocurra esto. Pero claro no estoy seguro.

¿Sabeis como se puede arreglar esto?

PD: Ahora estoy intentando trabajar directamente con el OCX registrado e instalado a través de código con el 'CreateOleObject', pero no acaba de funcionar, además no se como capturar los Eventos que genera el componente OCX. Si se os ocurre algo por favor compartidlo llevo ya casi dos semanas con la broma.

Gracias por adelantado...
__________________
[Aprendiz]: Por que siempre hay algo nuevo que aprender.
Responder Con Cita
  #2  
Antiguo 25-01-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Prueba a hacerlo desde:
Project/Import Type Library/Add... y luego Install

Además prueba a registrar el OCX con regsvr32.exe por si es un servidor.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 25-01-2005
Aprendiz Aprendiz is offline
Miembro
 
Registrado: may 2003
Posts: 78
Poder: 21
Aprendiz Va por buen camino
Perdón, no lo puse pero el resultado es exactamente el mismo, ya lo he probado.

También había registrado la clase.

Saludos,
__________________
[Aprendiz]: Por que siempre hay algo nuevo que aprender.
Responder Con Cita
  #4  
Antiguo 12-02-2006
Avatar de orfeo
orfeo orfeo is offline
Miembro
 
Registrado: may 2003
Posts: 99
Poder: 21
orfeo Va por buen camino
Cita:
Empezado por Aprendiz
Buenas a todos.

El problema es que tengo un OCX que me han suministrado que está desarrollado en VB por lo que me han dicho. Me lo han pasado con un programa de ejemplo también desarrollado en Visual y funciona a la perfección.
Tengo el mismo problema con un ocx creado en VB6 (creado con la opcion Control ActiveX). Uso Delphi 6, W2k+SP4

Realizo una aplicacion VB6, y el ocx anda perfecto.

El ocx solo tiene dos funciones:

Public Function suma(a As Double, b As Double) As Double
Public Function retString() As String

pero cuando lo importo desde Delphi desde la opcion "import ActiveX/component" me sucede lo mimos, me crea la TLB.pas, en ella puedo ver las funciones exportadas de ocx en las interfaces "_UserControl1 = nterface(IDispatch)" y " _UserControl1Disp = dispinterface"

pero no veo ninguna clase, ni tampoco conponente nuevo en la paleta de componentes, pero me dice que el componente creado esta instalado.
Al no haber dicha clase, el componente no se registra en la seccion de paletas.

Tambien probe "Import Type Library" pero es el mismo resultado.

Tambien he estado dando vueltas for foros, pero nada...

Algo raro es que si veo el .ocx con Dependency Walker solo veo que exporta DllRegisterServer, DllUnregisterServer, DllCanUnloadNow,DllGetClassObject. no veo a suma y retString.
Otra cosa rara es que cuando le doy instalar al paquete que envuelve al Active X (creado por Delphi), me dice que se instalo satifactorimente, pero no me indica los coponente registrados. No me registra el ActiveX.


Y estoy estancado...
__________________
Aprendamos a ser civilizados

Última edición por orfeo fecha: 12-02-2006 a las 23:53:01.
Responder Con Cita
  #5  
Antiguo 13-02-2006
Aprendiz Aprendiz is offline
Miembro
 
Registrado: may 2003
Posts: 78
Poder: 21
Aprendiz Va por buen camino
Hola,

Pues siento no poder ayudarte pero yo no pude solucionarlo finalmente. Después de estar dandole vueltas unos cuantos dias acabé por hacer una solución intermedia traspasando información entre un programa VB y el de delphi mediante ficheros de texto. En fin, si alguien sabe la solución de todas formas, que la diga que tengo curiosidad.

Saludos.
__________________
[Aprendiz]: Por que siempre hay algo nuevo que aprender.
Responder Con Cita
  #6  
Antiguo 15-05-2006
JuanPa1 JuanPa1 is offline
Miembro
 
Registrado: may 2006
Posts: 66
Poder: 18
JuanPa1 Va por buen camino
Thumbs up Componente OCX de VB en Delphi

Hola, yo igual tengo el mismo problema pero creo que estoy cerca de resolverlo. El asunto es que el componente que importas es un componente no visual, es decir, no se va a poner en la paleta de componentes. Lo que podrias hacer y lo que yo estoy haciendo es utilizando la clase que me genera, osea el .pas y esa clase tienes que declararle un objeto o instancia para luego ya poder utilizar las funciones y procedimientos que tiene dicho objeto....
Responder Con Cita
  #7  
Antiguo 15-05-2006
FerCastro FerCastro is offline
Miembro
 
Registrado: abr 2006
Posts: 97
Poder: 19
FerCastro Va por buen camino
Hola

Yo tuve el mismo problema, un DLL (OCX) no visual y ya lo hice trabajar en Delphi 2005. Si gustas contactarme a mi correo:

gersomfernando@gmail.com

Con gusto te puedo ayudar.

Saludos!!

Fernando
Responder Con Cita
  #8  
Antiguo 09-02-2007
rodrigo rodrigo is offline
Registrado
 
Registrado: may 2003
Ubicación: Formosa, Argentina
Posts: 7
Poder: 0
rodrigo Va por buen camino
Hola,

No se si ya lo solucionaron, pero por las dudas, les cuento que en los newsgroups de borland encontré la forma de hacer que Delphi genere la clase y la instale en la paleta de activex. Ahora puedo seleccionar el componente y ponerlo en un form.

Bueno, hay que ir al menu
tools->environment options->type library

y tildar "Ignore special CoClass Flags when importing", y tildar todas las subopciones necesarias como "Can Create", etc... hasta que genere el código de la clase e instale el componente en la paleta de componentes.

Espero les sirva

Saludos
Responder Con Cita
  #9  
Antiguo 09-02-2007
FerCastro FerCastro is offline
Miembro
 
Registrado: abr 2006
Posts: 97
Poder: 19
FerCastro Va por buen camino
Hola

No se si tuviste tiempo de revisar tu correo, por ahi te mandé algo.

Saludos

Fernando Castro
México, D.F.
Responder Con Cita
  #10  
Antiguo 12-02-2007
hugohiram hugohiram is offline
Registrado
 
Registrado: feb 2007
Posts: 8
Poder: 0
hugohiram Va por buen camino
Hola

Yo tambien estoy teniendo el mismo problema con un DLL (OCX) no visual, he logrado instalarlo en una máquina con Delphi 7 y puedo verlo en la paleta de activeX, pero al hacer la llamada no funciona, ahora estoy intentando instalarlo en una pc con Delphi 2005 y no puedo hacerlo correctamente, lo importo a "activeX", pero no veo este grupo en la paleta, intento también hacerlo en standar y otros, pero no se agrega a ninguno.

He hecho los pasos de rodrigo pero no logro instalarlo bien.

gracias.
Responder Con Cita
  #11  
Antiguo 12-02-2007
FerCastro FerCastro is offline
Miembro
 
Registrado: abr 2006
Posts: 97
Poder: 19
FerCastro Va por buen camino
Hola

Me puedes mandar tu dirección de correo para enviarte unas imágenes de cómo hacerlo?

Saludos!!

Fernando Castro
México, D.F.
gersomfernando@gmail.com
Responder Con Cita
  #12  
Antiguo 19-02-2007
rodrigo rodrigo is offline
Registrado
 
Registrado: may 2003
Ubicación: Formosa, Argentina
Posts: 7
Poder: 0
rodrigo Va por buen camino
Hola,

Yo tampoco podia hacerlo funcionar hasta que encontre esta pagina:

http://www.x64.com/pt/vbdelphi.html

esta en ingles, pero basicamente es cambiar en el .pas que te generó (XXX_TLB.pas) la definicion de la clase, metodos y propiedades que apuntan al "interface" por el "dispint".

Me olvidaba, trabajo en Delphi7.

Otra mas, si a alguien le sirve copio .pas generado por Delphi y .pas modificado.

Espero te sirva

Saludos
Rodrigo

Última edición por rodrigo fecha: 20-02-2007 a las 00:12:46.
Responder Con Cita
  #13  
Antiguo 13-06-2007
yacolca2008 yacolca2008 is offline
Registrado
 
Registrado: jun 2007
Posts: 4
Poder: 0
yacolca2008 Va por buen camino
OCX en Delphi

Buenas, quisiera saber si despues de importar un ocx creado en visual basic puedo usar el ejecutable sin necesidad de tener el ocx a su costado...

Yo he utilizado delphi 5 y no me sale ..
Utilize la 6 Y ME SALIO UN ERROR DE IMPORTACION
En la 7 salio correctamente

ahora cuando borro el ocx sale un error en el ejecutable..

No hay alguna forma de que el ocx ya no se use despues de compilarlo desde delphi ?
Responder Con Cita
  #14  
Antiguo 13-06-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por yacolca2008
quisiera saber si despues de importar un ocx creado en visual basic puedo usar el ejecutable sin necesidad de tener el ocx a su costado...
Hola, antes de nada te recomiendo que leas la Guía de estilo.
Si tienes una nueva pregunta no continues con un hilo abierto,aunque esté relacionado, abre un nuevo hilo.

En cuanto a la pregunta, la respuesta es no. Delphi al importar un OCX, crea una interficie para acceder a ese componente de forma cómoda, una capa intermedia, pero el que realmente hace el trabajo sigue siendo el OCX, por lo tanto es imprescindible que lo tengas.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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 20:44:57.


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