Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como leer el valor de una propiedad en una DLL ? (https://www.clubdelphi.com/foros/showthread.php?t=29621)

Delphiboy 26-01-2006 23:38:38

Como leer el valor de una propiedad en una DLL ?
 
Hola foro, tengo una DLL de la que llamo a una de sus funciones (metodos), le paso parametros y la ejecuto, despues necesito saber si no hubo error a travez de una propiedad, mi duda es como hago para leer el valor de esa propiedad ?, ya que delphi me sigue pidiendo parametros en:
if mPaso1.NoError

tengo el siguiente codigo:

implementation

{$R *.DFM}

function mPaso1(valor1, valor2, valor3, valor4 :String):String; stdcall;external 'MiDll.dll';


procedure TForm1.btnGeneraClick(Sender: TObject);
begin
mPaso1('4','200','20','852240');

if mPaso1.NoError = '0' then //si no existe error

Label2.Caption := mPaso1.Autorizacion;
else
showmessage('Error: '+ mPaso1.NoError + mPaso1.DescError);

end;


de antemano gracias....:confused:

brandolin 27-01-2006 00:33:39

Con las DLL no podes tener acceso a las propiedades salvo que las misma esten definidas y exportadas por la DLL.

Es decir que si queres que acceder an NoError deberia existir en la DLL una funcion que haga:

Código Delphi [-]
function DLLNoError : Integer;
begin
       DLLNoError :=  NoError;
end;

y para llamarlo desde tu codigo delphi deberias hacer:

Código Delphi [-]
procedure TForm1.btnGeneraClick(Sender: TObject);
begin
mPaso1('4','200','20','852240');

if DLLNoError = '0' then //si no existe error

Label2.Caption := DLLAutorizacion;
else
showmessage('Error: '+ DLLNoError + DLLDescError);

end;

donde las DLLNoError, DLLDescError, etc son funciones exportadas por la Dll.

Delphiboy 27-01-2006 16:18:32

Gracias Brandolin por tu respuesta, el siguiente es un ejemplo de como se llama a la funcion y como se lee el valor de la propiedad LNoError, esta escrito en Visual Basic. Yo necesito hacer lo mismo pero en Delphi 5.

Option Explicit

Public vg_Obj As Object

Private Sub Form_Load()
Set vg_Obj = CreateObject("MiDll.clsGeneral")
End Sub

Private Sub cmdGenera_Click()
On Error GoTo MsgError

vg_Obj.LimpiaPropiedades

vg_Obj.Tienda = Me.TextTienda.Text
vg_Obj.Importe = Me.TextImporte.Text
vg_Obj.Dia = Me.TextDia.Text
vg_Obj.Ticket = Me.TextTicket.Text

vg_Obj.mPaso1
if vg_Obj.LNoError = “0” then
msgbox “Autorización = ” & vg_Obj.Autorizacion
…CONTINUA PROCESO…
else
msgbox "NoError = " & vg_Obj.LNoError & vbCrLf & _
"DescError = " & vg_Obj.pDescError
end if
Exit Sub
MsgError:
MsgBox Err.Number & " " & Err.Description, vbCritical
End Sub


saludos, gracias.

:)


La franja horaria es GMT +2. Ahora son las 11:03:40.

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