Aparentemente desta forma funcionaria muito bem. Qual o problema de utilizar esta mesma função?
Em 05/12/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> escreveu: > > Oi .. > > Utilizo Delphi 7 com IB Objects 4.2.i > Gostaria de copiar todo o conteudo de um IB_GRID para a memoria > (clipboard) e depois salvar no Word. > > Sei como fazer utilizando DBGRID, mas com o IB Objects nao encontrei a > solucao e ja vi na > lista IBOjects do Yahoo... > > Ai esta a rotina para usar no DBGRID > > (obrigado) > > procedure DBGridToClipBoard(DBGrid: TDBGrid; PastHeader: Boolean); > var > StrToCopy: string; > Idx, IdxCol: Integer; > BookMark, SavedBookMark: TBookMark; > begin > > DBGrid.SelectedRows.Clear; > > DBGrid.DataSource.DataSet.DisableControls; > try > DBGrid.DataSource.DataSet.First; > while not DBGrid.DataSource.DataSet.EOF do > begin > DBGrid.SelectedRows.CurrentRowSelected := True; > DBGrid.DataSource.DataSet.Next; > end; > finally > DBGrid.DataSource.DataSet.EnableControls; > end; > > if DBGrid.SelectedRows.Count = 0 then > Exit; > > StrToCopy := ''; > > if PastHeader then > begin > StrToCopy := DBGrid.Columns[0].Title.Caption; > for IdxCol := 1 to DBGrid.Columns.Count - 1 do > StrToCopy := format('%s'#9'%s', [StrToCopy, > DBGrid.Columns[IdxCol].Title.Caption]); > StrToCopy := StrToCopy + #13#10; > end; > > with DBGrid.DataSource.DataSet do > begin > //salva a posição atual no DBGrid > SavedBookMark := GetBookmark; > //evita movimentação no DBGrid > DisableControls; > for Idx := 0 to DBGrid.SelectedRows.Count - 1 do > begin > //posiciona na linha selecionada > GotoBookMark(Pointer(DBGrid.SelectedRows[Idx])); > StrToCopy := StrToCopy + DBGrid.Columns[0].Field.AsString; > for IdxCol := 1 to DBGrid.Columns.Count - 1 do > StrToCopy := Format('%s'#9'%s', [StrToCopy, > DBGrid.Columns[IdxCol].Field.AsString]); > StrToCopy := StrToCopy + #13#10; > end; > ClipBoard.Clear; > ClipBoard.SetTextBuf(PAnsiChar(StrToCopy)); > //Restauramos o posicionamento inicial do DBGrid > GotoBookMark(SavedBookMark); > FreeBookMark(SavedBookMark); > //reabilitamos movimentação no DBGrid > EnableControls; > end; > end; > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas]