Ver Mensaje Individual
  #2  
Antiguo 07-12-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
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.

Última edición por nlsgarcia fecha: 07-12-2012 a las 20:28:34.
Responder Con Cita