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]

Responder a