diff --git a/Source/Base/Utiles/uGridClipboardUtils.pas b/Source/Base/Utiles/uGridClipboardUtils.pas index e854dde8..a9bb2aa0 100644 --- a/Source/Base/Utiles/uGridClipboardUtils.pas +++ b/Source/Base/Utiles/uGridClipboardUtils.pas @@ -599,26 +599,31 @@ begin if not Assigned(AGrid) then raise Exception.Create('Grid no asignado (CopiarSeleccionGridAlPortapapelesTXT)'); - RegistrarFormatos; - - AGridStatus := TcxGridStatus.Create(TcxGridDBTableView(AGrid.ActiveView)); - Clipboard.Open; + ShowHourglassCursor; try - CopiarGridAlPortapapelesTXT(AGrid); - CopiarGridAlPortapapelesRTF(AGrid); - CopiarGridAlPortapapelesHTML(AGrid); + RegistrarFormatos; - AMemStream := TMemoryStream.Create; + AGridStatus := TcxGridStatus.Create(TcxGridDBTableView(AGrid.ActiveView)); + Clipboard.Open; try - SaveGridRowsToStream(TcxGridDBTableView(AGrid.ActiveView), AMemStream, AGrid.ActiveView.Name, True); - CopyStreamToClipboard(CF_FACTUGES, AMemStream); + CopiarGridAlPortapapelesTXT(AGrid); + CopiarGridAlPortapapelesRTF(AGrid); + CopiarGridAlPortapapelesHTML(AGrid); + + AMemStream := TMemoryStream.Create; + try + SaveGridRowsToStream(TcxGridDBTableView(AGrid.ActiveView), AMemStream, AGrid.ActiveView.Name, True); + CopyStreamToClipboard(CF_FACTUGES, AMemStream); + finally + FreeAndNil(AMemStream); + end; finally - FreeAndNil(AMemStream); + Clipboard.Close; + AGridStatus.Restore(TcxGridDBTableView(AGrid.ActiveView)); + FreeAndNil(AGridStatus); end; finally - Clipboard.Close; - AGridStatus.Restore(TcxGridDBTableView(AGrid.ActiveView)); - FreeAndNil(AGridStatus); + HideHourglassCursor; end; end; @@ -771,18 +776,23 @@ begin 2. CF_TEXT -> tratar y pegar texto plano } - RegistrarFormatos; + ShowHourglassCursor; + try + RegistrarFormatos; - if Clipboard.HasFormat(CF_FACTUGES) then - begin - PegarSeleccionGridDesdePortapapeles(AGrid); - Exit; - end; + if Clipboard.HasFormat(CF_FACTUGES) then + begin + PegarSeleccionGridDesdePortapapeles(AGrid); + Exit; + end; - if Clipboard.HasFormat(CF_TEXT) then - begin - PegarTextoDesdePortapapeles(AGrid); - Exit; + if Clipboard.HasFormat(CF_TEXT) then + begin + PegarTextoDesdePortapapeles(AGrid); + Exit; + end; + finally + HideHourglassCursor; end; end;