Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Instalar o importar componente para delphi (https://www.clubdelphi.com/foros/showthread.php?t=55244)

jomanmoz 11-04-2008 02:56:17

Instalar o importar componente para delphi
 
Hola...
Tengo un problema con una aplicacion que hice en delphi.
En esta aplicación utilizo un componente llamado Hwinterface que maneja el puerto paralelo de la PC. Este componente lo agrego a delphi es un archivo Hwinterface.ocx, los pasos que sigo son:

paso1. Component/Import activex control
paso2. clic boton Add
paso3. Selecciono Hwinterface.ocx
paso4. clic boton Install

y listo el componenete aparece en la pestaña de Activex y lo uso en mi aplicacion.

El problema es que cuando me voy a otra computadora donde no tengo delphi mi aplicación no corre, da un error.

para poder hacerlo correr, necesito instalar delphi, y con solo realizar los primeros 3 pasos anque no instale el componente ya corre mi aplicación.

Quisiera saber Que se debe hacer o cuales pasos son los correctos en la instalación de este tipo de componentes para que mi aplicación pueda correr en cualquier maquina sin tener que instalar delphi y el componente .ocx .

Ayudenme por favor...:)

BlueSteel 11-04-2008 05:34:21

copia el archivo Hwinterface.ocx
 
Cita:

Empezado por jomanmoz (Mensaje 279184)
Hola...
Tengo un problema con una aplicacion que hice en delphi.
En esta aplicación utilizo un componente llamado Hwinterface que maneja el puerto paralelo de la PC. Este componente lo agrego a delphi es un archivo Hwinterface.ocx, los pasos que sigo son:

paso1. Component/Import activex control
paso2. clic boton Add
paso3. Selecciono Hwinterface.ocx
paso4. clic boton Install

y listo el componenete aparece en la pestaña de Activex y lo uso en mi aplicacion.

El problema es que cuando me voy a otra computadora donde no tengo delphi mi aplicación no corre, da un error.

para poder hacerlo correr, necesito instalar delphi, y con solo realizar los primeros 3 pasos anque no instale el componente ya corre mi aplicación.

Quisiera saber Que se debe hacer o cuales pasos son los correctos en la instalación de este tipo de componentes para que mi aplicación pueda correr en cualquier maquina sin tener que instalar delphi y el componente .ocx .

Ayudenme por favor...:)

Hola...

has intentado copiar el archivo Hwinterface.ocx a los computadores que no tienen el delphi instalado...???

te lo digo por que se me genero un problema parecido... instalé un activeX del Acrobat reader... el sistema funciona super.. cuando lo paso a un computador que no tiene el adobe reader el sistema no funciona pero si le instalo el adobe... si....conclusion.. creo que debes tener la aplicación en la computadora.. es decir el archivo Hwinterface.ocx

Salu2.... :p:D

Neftali [Germán.Estévez] 11-04-2008 10:03:20

Cita:

Empezado por jomanmoz (Mensaje 279184)
El problema es que cuando me voy a otra computadora donde no tengo delphi mi aplicación no corre, da un error.
para poder hacerlo correr, necesito instalar delphi, y con solo realizar los primeros 3 pasos anque no instale el componente ya corre mi aplicación.

Quisiera saber Que se debe hacer o cuales pasos son los correctos en la instalación de este tipo de componentes para que mi aplicación pueda correr en cualquier maquina sin tener que instalar delphi y el componente .ocx .

(1) No debes instalar Delphi en el resto de computadoras para que tu aplicación funcione, a parte de que seguramente es ilegal.
(2) Es inevitable que tengas que instalar el componente OCX en las computadoras donde vas a ejecutar tu aplicación. Si estás utilizando un componente que no pertenece a Delphi, sino que es "externo" por decirlo así, como el que estás utilizando, deberás llevarlo con tu aplicación; No te queda otra.
Lo lógico es copiarlo en el mismo directorio del ejecutable y registrarlo si es necesario.

Repito, en ningun caso es necesario instalar Delphi en las máquinas donde vas e ejecutar tu aplicación; delphi es un entorno de desarrollo, no de ejecución.

jomanmoz 11-04-2008 21:42:38

Ok.
muchas Gracias por cotestar.
A que te refieres con: "Y registrarlo si es necesario".?(no se como se hace eso:))

por que sí copié el archivo Hwinterface.ocx a la carpeta donde está el ejecutable y me dió el mismo error.

También mensionas que es inevitable que tenga que instalar el componente OCX, y tampoco no se como se instala en las Computadoras sin delphi instalado.(¿O te refieres a solo copiarlo con los archivos de la apliacion?).

Black_Ocean 11-04-2008 23:26:34

Registrar una librería significa digamos "agregar" una DLL, OCX, etc en la carpeta de linkeo del sistema y, a la vez, agregar unas claves en el registro para que Windows pueda linkearla (o enlazarla) en la carpeta y al/los programas cuando sean llamadas/cargadas (LoadLibrary). Cuando una librería es llamada por un programa, Windows se encarga automáticamente de buscar la existencia de esta en el directorio de la aplicación y/o en las carpetas de linkeo de librerías dinámicas REGISTRADAS en el sistema. También así mismo, estarás compartiendo la librería para que otras aplicaciones puedab utilizar la librería (en el caso que se pueda). Además, este linkeo se hace también porque sistemas operativos antiguos sólo soportan DLL y OCX que estén linkeados en el directorio de System y System32 respectivamente.

Por otro lado, procura ponerle un nombre de archivo poco común, ya que si inicias una carga de una librería que tiene el mismo nombre de archivo que otra ya existente en ejecución en el sistema generará una excepción de ejecución (a esto se le llama DLL hell), te recomiendo que le pongas un nombre poco común al nombre del fichero OCX para que no te genere este conflicto cuando sea cargada.

Esta tarea la puedes hacer con tan sólo ejecutar el comando REGSVR32, que gracias a la API ShellExecute de Windows, puedes hacerlo así:

EJ:

Código Delphi [-]
uses
  ShellAPI;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Handle, 'Open', PChar('regsvr32.exe'), PChar('C:\Windows\System32\Hwinterface.ocx'), nil, SW_SHOWNORMAL);
end;

u ocupando el siguiente Tips de Trucomanía

Saludos y espero que te sea de utilidad ;)


La franja horaria es GMT +2. Ahora son las 11:43:02.

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