Ver Mensaje Individual
  #14  
Antiguo 04-12-2007
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Reputación: 19
Chris Va por buen camino
No voy a criticar tu forma de interactuar con el usuario, auque como h a dicho lepe, puede ser un poco incomodo estar haciendo clic, clic, clic.....

Fijate que lo que te sucede es cuando un thread termina repentinamente es porque ha ocurrido una acepción en este y normalmente delphi no te informa sobre las ecepciones en los threads [solo cuando estás en modo debugger].

Exception class EOSError with message 'System Error. Code: 1400.
El identificador de la ventana no es válido'.


esto sucede a como lo ha dicho lepe a que no destruyes la ventana a utilizar.
A mi punto de vista tienes dos alternativas:
Esta es la que te recomiendo:
Código Delphi [-]
procedure TForm2.IdThreadComponent2Run(Sender: TIdThreadComponent);

begin
if ADOtable2.RecordCount > 0 then
   begin
   ADOTable2.First;
   Try
   Form23 := TForm23.Create(self);
    while  not ADOtable2.eof  do
      begin
        Form23.showModal;
        ADOTable2.Delete;
      //  ADOTable2.Next;
      end;
    Finally
    Form23.Free;
    end; 
   end;
end;

Ó:

Código Delphi [-]
procedure TForm2.IdThreadComponent2Run(Sender: TIdThreadComponent);

begin
if ADOtable2.RecordCount > 0 then
   begin
   ADOTable2.First;
    while  not ADOtable2.eof  do
      begin
        Form23 := TForm23.Create(self);
        Form23.showModal;
        ADOTable2.Delete;
      //  ADOTable2.Next;
        Form23.Free; 
      end;
   end;
end;
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita