Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-09-2017
SoftIber SoftIber is offline
Registrado
NULL
 
Registrado: ago 2017
Posts: 3
Poder: 0
SoftIber Va por buen camino
Unhappy ¿Cómo importar componentes ActiveX externos a Delphi?

Hola a todos,

Soy nuevo en Delphi, estoy trabajando con la versión Trial 10.2 Tokyo.
He heredado el código fuente de una aplicación industrial de escritorio, que conecta con diferentes dispositivos electrónicos.

El fabricante de uno de los dispositivos, aporta su software de control y las .dll de su dispositivo, el cual yo tengo que controlar desde mi aplicación.

Después de instalar el software del fabricante, abro el código fuente de mi aplicación y en la cláusula 'uses' del módulo dónde se indican los componentes que se van a utilizar, marca con error la declaración de dicho componente y aparece el error (Cannot resolve unit name ‘**componente**.TLB’).

Viendo que no reconoce el componente, realizo una importación de componentes ActiveX (tal como declara el fabricante) desde Delphi. Me crea un “**componente**_TLB.PAS” y “**componente**_TLB.DCR” en un path de librerías que Delphi ya tiene especificadas.

El error anterior desaparece, pero las constantes de ese componente declaradas bajo la cláusula 'interface' no las reconoce, mostrando el mensaje de error (Undeclared identifier ...)

No se si me he explicado bien (espero que si).

A ver si alguien me puede dar algo de luz.
Muchas gracias de antemano.
Responder Con Cita
  #2  
Antiguo 04-09-2017
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.232
Poder: 20
ElKurgan Va camino a la fama
Una cosa es que los Active X los importe en un Path específico y otra cosa es que la aplicación vea dicho path por defecto.

Mira a ver en "Tools\Options\Delphi Options\Library Path" si está incluído ahí el path de las librerías.

Si todo está bien, entonces tendremos que ver otras opciones


Saludos
Responder Con Cita
  #3  
Antiguo 04-09-2017
SoftIber SoftIber is offline
Registrado
NULL
 
Registrado: ago 2017
Posts: 3
Poder: 0
SoftIber Va por buen camino
Hola ElKurgan,
Lo primero, muchas gracias por responder.

He revisado... y el path donde me genera la importación de los componentes, está declarado en la "Library Path".
Responder Con Cita
  #4  
Antiguo 05-09-2017
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.232
Poder: 20
ElKurgan Va camino a la fama
El error de "Undeclare identifier" suele aparecer por un sólo motivo, y es que la Unit donde se va a utilizar dicho "identifier" no tiene incluida en su claúsula "uses" la unit donde está definido.

Ojo, que a veces el compilador te da error en una unit y resulta que el error es porque en esa unit se llama a otra que es la que tiene el error de verdad.

No se, con las explicaciones que das no puedo aclararte más cosas.

Saludos
Responder Con Cita
  #5  
Antiguo 06-09-2017
SoftIber SoftIber is offline
Registrado
NULL
 
Registrado: ago 2017
Posts: 3
Poder: 0
SoftIber Va por buen camino
Hola ElKurgan,

Perdón si no soy lo suficientemente claro, recuerda que soy nuevo en el mundo Delphi y todavía desconozco muchos detalles del IDE y sus entrañas.
Intentaré explicar con más detalle el problema.

Uno de los dispositivos que tengo que controlar desde mi código fuente, trae un instalador con su software de entre los cuales incluye sus *.dll y *.ocx pertinentes, pero no trae paquetes ni librerías para Delphi (.bpl, .dcp, .dcu, .pas ,etc), lo que interpreto que me lo debo generar yo a partir de las DLL, OCX o EXE.

Ahí es donde viene mi problema, que no se si esa importación en Delphi, la estoy haciendo correctamente.
No sé si lo debo Importar “Type of Component” -> “Import ActiveX Control” -> Ahí selecciono el DLL, OCX o EXE del software del fabricante del dispositivo. (no sé si estoy diciendo una tontería) o crear un package.
Como comentaba en el primer post, he heredado éste código fuente y veo que en la cláusula “uses”, hace mención de una unidad que no dispongo.
Responder Con Cita
  #6  
Antiguo 07-09-2017
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.232
Poder: 20
ElKurgan Va camino a la fama
A ver, la importación es correcta.

El problema de que no identifique variables puede ser otro. A lo mejor tienes que importar más librerías. Sin conocer el producto o la librería de tipos original, ni el ".pas" importado es difícil saber que problema es el que tienes.

Por ejemplo, en el trabajo necesitamos acceder a RFCs de SAP desde Delphi. Para ello importamos las librerías de tipos que se instalan en los ordenadores cuando se instala el cliente SAP. Pero no nos basta con importar un sólo OCX, ya que SAP instala al menos 20 0 30 librerías Active X. No todas las necesitamos, claro, pero al menos tres o cuatro si que hay que hacerlo.

Eso si, cuando usamos las variables y definiciones importados al "xxx_tlb.pas", es en el programa, formulario o unit que las usa donde tenemos que añadirlas al USES.

No se si me he explicado bien, si pudieras dar mas pistas....
Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Como cargar componentes activeX y librerias en el ejecutable tom_rkx C++ Builder 3 09-04-2008 23:38:57
Importar ActiveX sanyco Varios 1 15-09-2006 03:42:13
importar activeX control en delphi 2006... ronimaxh Varios 0 05-07-2006 00:17:56
Problema al Importar activex carlosmoralesm OOP 2 13-02-2006 00:57:38
Problema al importar un ActiveX LoBo2024 OOP 11 07-09-2004 19:19:18


La franja horaria es GMT +2. Ahora son las 15:49:24.


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