Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Bloqueo de teclas al exporta a excel (https://www.clubdelphi.com/foros/showthread.php?t=82031)

BPL 17-01-2013 21:14:41

Bloqueo de teclas al exporta a excel
 
Hola a todos

estoy exportando datos de una Grilla (delphi) a excel, pero necesito bloquear desde el programa (delphi version 7)
el teclado para no interrumpir la migracion de los datos a excel...(version excel 2007)

alguien puede ayudarme plis...

gracias...

Al González 17-01-2013 21:38:17

¿Sólo el teclado o también el ratón? :)

Convendría que detallaras lo que estás haciendo y cuál es el objetivo, además de mostrar algo de código y mencionar qué usas para la exportación.

Saludos.

BPL 17-01-2013 22:04:49

si tambien el teclado y el mouse

el programa esta hecho en delphi 7 los datos estan en una grilla y necesito exportarlo a una planilla excel
para ello uso esta funcion.
si se presiona tecla o click con el mouse se interrumpe y los datos no son todos pasados.


Function ExportaExcel(MyTabla:TDataSet;MyGrilla:TDBGrid):Boolean ; Var
Excel : Variant ;
Fila : Integer ;
Columna: Integer ;
Data : TDataSet;
tilcam : String ;
Begin

Excel := CreateOleObject('Excel.Application') ;
Excel.visible := True ;
Data := MyTabla ;
Data.First ;
Fila := 1 ;
Columna := 1 ;
MyTabla.DisableControls ;
Excel.workBooks.Add ;
For Columna := 0 To MyGrilla.Columns.Count-1 do Begin
Excel.Cells[Fila,Columna+1].Value := MyGrilla.Columns[Columna].FieldName ;
end ;
Fila := 2 ;
While not data.Eof do Begin
for Columna := 0 to MyGrilla.Columns.Count-1 do begin
tilcam := Data.FieldByName(MyGrilla.Columns[columna].FieldName).AsString;
if (Length(tilcam)=10) and (Copy(tilcam,3,1)='/') and (Copy(tilcam,6,1)='/') then begin
Excel.Cells[fila,Columna+1].value := Data.FieldByName(MyGrilla.Columns[columna].FieldName).AsDateTime
end else
Excel.Cells[fila,Columna+1].value := Data.FieldByName(MyGrilla.Columns[columna].FieldName).AsString ;
end ;

Data.Next ;
Fila := Fila + 1 ;
end ;
MyTabla.EnableControls ;


gracias

Al González 17-01-2013 23:23:14

No queda muy claro qué eventos de ratón y teclado y sobre qué controles de la pantalla interrumpen la exportación. Pero, a simple vista, pareciera que sería suficiente inhabilitar la rejilla y el botón que lanza la exportación justo antes de iniciar ésta, y volverlos a habilitar al terminar:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.Enabled := False;
  Rejilla.Enabled := False;

  Try
    ExportaExcel (...);
  Finally
    Button1.Enabled := True;
    Rejilla.Enabled := True;
  End;
end;


La franja horaria es GMT +2. Ahora son las 21:42:12.

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