PDA

Ver la Versión Completa : Instalar .pas como componente


LDD
11-12-2022, 20:28:07
Gracias por interesarte.

Necesito importa un objeto que utilizaba en una librería delphi 6 a una librería , cualquiera, de DX 10.4
Si sigo las opciones del menú Component -> Install Component me abre DCLUSR270.BPL, hago Build e Install y me dice que todo es correcto PERO EL COMPONENTE no aparece en el IDE ni en los objetos de la librería CODEGEAR USER COMPONETS

Ya no sé qué hacer para poder usar este objeto.
Lo he limpiado para que no quede rastro de objetos del antiguo Delphi 6

Adjunto el .Pas por si puede ayudar

Neftali [Germán.Estévez]
12-12-2022, 09:27:08
No parece que lo que has añadido sea ningún componente como tal.
Más parece una unit con código al que puedes llamar.

Intenta añadirlos a un proyecto y haz la siguiente llamada (por ejemplo) a ver quá pasa:

uses
Treportp;
...

var l:TListadoPant := TListadoPant.Create(nil);
l.Print('hola mundo')

El problema es que sigues teniendo algunas dependencias.
Por ejemplo, el formulario Tpantrpt está utilizando componentes TAdvSmoothButton, que si no dispones de la librería fallarán al compilar y ejecutar.
Por otro lado, la unit Treportp.pas (que parece que es la que puedes llamar) posee dependencias de la dll NViewLib.dll. Sin ella, tampoco podrás probar nada.

function NViewLibSetLanguage(Lang: PChar): bool; Stdcall; external 'NViewLib.dll';
Procedure NViewLibSetCustomLang(pProgress,pError, pLoad, pErrLoad, pWarning : PChar); Stdcall; external 'NViewLib.dll';
function NViewLibLoad(FileName : PChar; ShowProgress: BooLean):hbitmap; Stdcall; external 'NViewLib.dll';
function NViewLibSaveAsJPG(Quality:Integer; FileName: PChar):bool; Stdcall; external 'NViewLib.dll';
function Load_JPG(FileName : PChar; ShowProgress: BooLean):hbitmap; Stdcall; external 'NViewLib.dll';
function Load_GIF(FileName : PChar; ShowProgress: BooLean):hbitmap; Stdcall; external 'NViewLib.dll';

movorack
12-12-2022, 15:00:29
Hola, LDD!

Añadiendo a lo que ha mencionado Neftalí, el componente no se registra porque no tienes definido el método de registro (https://docwiki.embarcadero.com/RADStudio/Sydney/en/Registering_the_Component). Ten en cuenta que debes añadir este componente a una BPL existente o crear tu propia BPL (https://docwiki.embarcadero.com/RADStudio/Sydney/en/Packages_(Delphi)).