Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Mandar parametro a procedimiento exportado (https://www.clubdelphi.com/foros/showthread.php?t=75428)

look 22-08-2011 20:44:15

Mandar parametro a procedimiento exportado
 
hola, tengo un form "FrmFacturacion" en una bpl y exporto una procedimiento para llamarlo desde mi aplicacion :
Código Delphi [-]
procedure cFacTrn;
begin
     FrmFacturacion := TFrmFacturacion.Create(Application);
     FrmFacturacion.ShowModal;
     EXIT;
end;
exports cFacTrn;

y de esta manera lo llamo desde mi aplicacion:
Código Delphi [-]
procedure TFrmPrincipal.btnFacturacClick(Sender: TObject);
var cFacTrn : procedure;
begin
    PckgModuleFac := LoadPackage('ModFac.bpl');
    if PckgModuleFac <> 0 then
    try
      @cFacTrn := GetProcAddress(PckgModuleFac, 'cFacTrn');
      cFacTrn
    except
      on e:Exception
      do
      begin
        ShowMessage('Error al cargar ModFac.Bpl '+#13+pchar(e.Message)) ;
      end;
    end;
end;
todo esto me funciona perfectamente, el problema es que estoy intentando mandarle parametros al formulario que esta en la bpl. algo asi:

Código Delphi [-]
procedure cFacTrn(par:integer);
begin
      MessageDlg('Parametro'+inttostr(par),mtInformation, [mbOK], 0);
     FrmFacturacion := TFrmFacturacion.Create(Application);
     FrmFacturacion.ShowModal;
     EXIT;
end;
exports cFacTrn(par:integer);

no he podido lagrar mandarle un parametro a un procedimiento exportado de una bpl..... :mad:

espero puedan ayudarme....


Saludos!!!!

look 22-08-2011 21:19:00

solucion:

Código Delphi [-]
procedure TFrmPrincipal.btnFacturacClick(Sender: TObject);
 var cFacTrn: procedure(S:Integer); stdcall;
begin
    try
      PckgModuleFac := LoadPackage('ModFac.bpl');
      if PckgModuleFac <> 0 then
      @cFacTrn := GetProcAddress(PckgModuleFac,'cFacTrn');
       cFacTrn(1);
    except
      on e:Exception
      do
      begin
        ShowMessage('Error al cargar ModCxc.Bpl '+#13+pchar(e.Message)) ;
      end;
    end;
end;


esta fue la solucion.... :)

gracias por tomar su tiempo en leer este post....


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

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi