frangarrob,
Te comento:
Cita:
1- La unidad IdHTTP no esta declarada.
2- El objeto gNuevo se usa antes de ser declarado e instanciado.
3- La llamada a gNuevo.Funcion('texto1', 'texto2', 'texto3': string) es erronea.
4- La variable finalizando no existe, existe la variable finalizado.
5- Application.ProcessMessages no tiene ninguna unidad que la declare.
6- ¿Que Exporta este DLL?.
|
Revisa este código:
Código Delphi
[-]
library ProjectDLL;
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdHTTP;
{$R *.res}
type
TNuevo = class(TObject)
sNuevo: TIdHTTP;
private
public
procedure Funcion(var1, var2, var3: string);
constructor Create;
destructor Destroy; override;
end;
TBack = class(TThread)
private
protected
procedure Execute; override;
public
constructor Create(CreateSuspended : boolean);
end;
var
finalizado : Boolean;
sBack : TBack;
constructor TNuevo.Create;
begin
inherited;
sNuevo := TIdHTTP.Create(nil);
sNuevo.HandleRedirects := True;
end;
destructor TNuevo.Destroy;
begin
sNuevo.Free;
inherited;
end;
procedure TNuevo.Funcion(var1, var2, var3: string);
begin
sNuevo.Get(var1);
finalizado := True;
end;
constructor TBack.Create(CreateSuspended : boolean);
begin
inherited Create(CreateSuspended);
end;
procedure TBack.Execute;
var
gNuevo : TNuevo;
begin
gNuevo := TNuevo.Create;
try
gNuevo.Funcion('texto1', 'texto2', 'texto3');
except
finalizado := True;
end;
gNuevo.Destroy;
end;
begin
sBack := TBack.Create(False);
sBack.FreeOnTerminate := False;
finalizado := False;
sBack.Resume;
while finalizado = False do begin
try
Application.ProcessMessages;
except
end;
end;
sBack.Destroy;
end.
El código anterior resuelve todo lo comentado (Puntos 1 al 5), pero desconozco si es lo que requiere tu proyecto.
Espero sea útil
Nelson.