Ver Mensaje Individual
  #7  
Antiguo 01-06-2013
ElGatitoTapatio ElGatitoTapatio is offline
Miembro
 
Registrado: nov 2006
Posts: 38
Reputación: 0
ElGatitoTapatio Va por buen camino
Bueno aqui estan mis conclusiones:

1.- Probé lo que me sugirió el compañero nlsgarcia, lamentablemente me siguió marcando error.
2.- Y pues me di a la tarea de ir comentando codigo y probando y llegué al problema, la funcion XDel. Esta funcion la estoy importando o tomando u oteniendo o como de se diga de una DLL que utilizo en mi proyecto, mi solucion fue sacar esa funcion de la dll y agregarla a la unidad del Hilo y efectivamente santo remedio.

Como no me gusta quedarme con la espinita dentro, alguien me podria explicar porque pasa esto cuando desde un hilo utilizo funciones de librerias externas? digo cosas tontas que se me ocurren es que al liberar el hilo se libere la dll o algo asi, pero ustedes son los expertos. Alguien sabe la respuesta?

Como comentario quiero decir que tambien probe utilizando mas funciones de la dll y efectivamente cuando hago esto es cuando me sucede el error.

Agrego la funcion solo como +info.

Código Delphi [-]
...
type
  TEnviarTemporales = class( TThread )
  private
    Handle : HWND;
  protected
    function  CopiarDocumentos(destino,ruta : String): Integer;
    function  XDel(From: TStrings): integer;
    procedure EnviarDocumentos;
    procedure Execute; override;
  public
    constructor Create(EHandle:HWND; ThreadPriority: TThreadPriority);
  end;

...

// ++ Elimna una lista de archivos
function TEnviarTemporales.XDel(From: TStrings): integer;
var
  FS: SHFILEOPSTRUCT;
  SFrom: string;
begin
  Result:= -1;
  if(From.Count > 0) then
  begin

    SFrom:= StringReplace(From.Text, #13+#10, #0, [rfReplaceAll]);

    ZeroMemory(@FS, sizeof(SHFILEOPSTRUCT));
    FS.wnd:= Handle;
    FS.wFunc:= FO_DELETE;
    FS.pFrom:= PCHAR(SFrom + #0);
    FS.pTo:= nil;
    FS.fFlags:= FOF_NOCONFIRMATION;

    Result:= SHFileOperation(FS);
  end;
end;


Y les agradeszo nuevamente por su valiosa ayuda!
Responder Con Cita