Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 31-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ElGatitoTapatio.

El error que estas recibiendo no se debe a la ejecución del Thread. Puede provocarlo el código invocado dentro del método EnviarDocumentos o bién otro ajeno a la unidad uHilos, códigos que en ambos casos no puedo evaluar.

Verificarlo esto es muy simple. Basta con hacerte otra unidad en la que quites todo lo foráneo a la ejecución del Thread y respetes el resto.

Por ejemplo:
Código Delphi [-]
unit Unit2;

interface

uses
  Windows,  SysUtils, Classes;

type
  TEnviarTemporales = class( TThread )
  private
    Handle : HWND;
  protected
    procedure EnviarDocumentos;
    procedure Execute; override;
  public
    constructor Create(EHandle:HWND; ThreadPriority: TThreadPriority);
  end;

implementation

uses Unit1; // en tu caso main

constructor TEnviarTemporales.Create(EHandle:HWND; ThreadPriority: TThreadPriority);
begin
  inherited Create(False);
  Handle := EHandle;
end;

procedure TEnviarTemporales.EnviarDocumentos;
var
   NetResource: TNetResource;
   vRuta,NuevaRuta : PChar;
   Error,Diagonal : String;
   ErrCode,i : integer;
   Listado,ListadoEliminar : TStrings;
begin
    Listado := TStringList.Create;
    ListadoEliminar := TStringList.Create;
    try
      { INICIO CODIGO REEMPLAZADO PARA PRUEBA }
      for i:= 1 to 50 do
      begin
        Form1.Caption := IntToStr(i); // tu caso: main.Caption := IntToStr(i);
        Sleep(20);
      end;
      { FIN CODIGO REEMPLAZADO PARA PRUEBA }
    finally
      Listado.Free;
      ListadoEliminar.Free;
    end;
end;

procedure TEnviarTemporales.Execute;
begin
  Synchronize(EnviarDocumentos);
  Terminate;
end;
end.
Y luego verás que se lo puede llamar una o n veces que no presenta ningún error durante o al cerrar la aplicacion:
Código Delphi [-]
...
implementation

uses Unit2; 

var
  HEnviarTemporales  : TEnviarTemporales;

procedure TForm1.FormDblClick(Sender: TObject);
begin
  if not Assigned(HEnviarTemporales) then
  begin
    HEnviarTemporales := TEnviarTemporales.Create(Handle, tpNormal);
    HEnviarTemporales := nil;
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 31-05-2013 a las 23:40:41.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Aplicacion Delphi lanza Excepcion 0x0eedfade Sieg Varios 4 29-07-2010 14:10:21
Cómo cerrar otra aplicacion desde mi aplicacion en Delphi 7 Gaby123 API de Windows 5 04-01-2007 22:44:51
Aplicacion con varios Hilos de Ejecución samantha jones Varios 1 02-03-2005 17:27:24
Cerrar Aplicacion Nathan API de Windows 3 22-03-2004 19:03:43


La franja horaria es GMT +2. Ahora son las 13:04:39.


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
Copyright 1996-2007 Club Delphi