Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-10-2007
Avatar de pborges36
pborges36 pborges36 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Argentina
Posts: 192
Poder: 20
pborges36 Va por buen camino
Cancelar un proceso

Hola a todos. Necesito una ayuda. Tengo un proceso en el cual tomo datos desde un xls para insertarlos a mi base de datos, usando OleObject. La pregunta es como se podria implementar un CANCELAR? Trate de hacerlo en el evento onkeypress del form, pero no pasa nada, como que durante el proceso el sistema no responde a nada. Creo que podria ser usando threads, pero la verdad soy novatisimo en ese tema. Desde ya muchas gracias.
Responder Con Cita
  #2  
Antiguo 29-10-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Seguramente tienes un bucle que hace un recorrido para importar los datos; Dentro del bucle pon la línea:

Código Delphi [-]
  Application.ProcessMessages;

Para que el proceso no quede bloqueado y p`rueba con el mismo código que tienes (OnKeyPress).

De todas formas, ayudaría que pusieras el código que estás utilizando.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 29-10-2007
Avatar de pborges36
pborges36 pborges36 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Argentina
Posts: 192
Poder: 20
pborges36 Va por buen camino
Thumbs up

Muchas gracias Neftali, Es exactamente lo que necesitaba. El codigo quedo mas o menos asi:

Código Delphi [-]
var
  Form1: TForm1;
  cancelado:boolean;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
    if Key=#27 then //se cancela con la tecla escape
      cancelado:=True;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Int64;
  Excel: Variant;
  Archivo,op:string;
begin
    try
      Excel := CreateOleObject('Excel.Application');
    except
      Excel.Quit;
      showmessage('No se pudo crear el Objecto Excel.');
      raise;
    end;
    if OpenDialog1.Execute then
      Archivo:= OpenDialog1.FileName
    else
      exit;
 cancelado:=false;  
    lblarchivo.Caption:='Importando archivo: '+Archivo;
    Excel.Workbooks.Open(Archivo);
    i:=1;
    repeat
        c1:=Excel.Cells[i,1].Value;
  //INGRESO LOS REGISTROS A MI BASE DE DATOS
  inc(i);
  lblregistros.Caption:=IntToStr(i)+' Registros leidos';
  lblregistros.Repaint;
  op:=Excel.Cells[i,1].Value;
  Application.ProcessMessages;
 until (op=eof.Text) or (cancelado);
  try
  Excel.quit;
  Excel.Free;
  except
  end;
end;

solo me resta agregar que la propiedad Keypreview del form esta en true.
Muchas Gracias!!
Responder Con Cita
Respuesta



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
Cancelar cambios en ADO jzginez Conexión con bases de datos 3 27-04-2007 16:26:20
Cancelar un before insert jlrbotella Conexión con bases de datos 1 30-01-2007 20:56:45
cancelar una consulta jmlifi SQL 1 08-11-2005 19:14:11
Cancelar borrado xerkan Firebird e Interbase 5 29-04-2005 12:55:50
Cancelar Un Proceso sergio_015 Varios 4 10-02-2004 16:17:38


La franja horaria es GMT +2. Ahora son las 02:50:18.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi