Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 28-12-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola GerTorresM.

Creo que podrías hacer así:
Código Delphi [-]
type
  TDBGridEx = class(TDBGrid); 
  TForm1 = class(TForm)
    ...
    DBGrid1: TDBGrid;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
  public
    procedure DBGridToClipBoard(DBGrd: TDBGridEx);
  end;
...
implementation 

uses ClipBrd;
...
{ Pasar contenido de los campos al portapapeles }
procedure TForm1.DBGridToClipBoard(DBGrd: TDBGridEx);
var
  i,j: Integer;
  BM: TBookmarkStr;
  s: string;
begin
  DBGrd.DataSource.DataSet.DisableControls;  // evita parpadeo en la grilla
  try
    BM:= DBGrd.DataSource.DataSet.Bookmark;  // guardar posición
    DBGrd.DataSource.DataSet.MoveBy(1 - DBGrd.Row); // ir a 1era fila
    s:= '';
    for i:= 1 to DBGrd.RowCount - 1 do  // nro filas mostradas
    begin
      for j:= 0 to DBGrd.FieldCount - 1 do   // campos
      begin
        s:= s + DBGrd.Fields[j].AsString;
        if i < DBGrd.RowCount  then s:= s + '-'; // separador de campos (el que gustes)
      end;
      s:= s + #10#13;                  //CRLF
      DBGrd.DataSource.DataSet.Next;   // siguiente fila
    end;
    ClipBoard.SetTextBuf(PChar(s));  // a portapapeles
    DBGrd.DataSource.DataSet.Bookmark:= BM; // restaurar posición
  finally
    DBGrd.DataSource.DataSet.EnableControls;
  end;
end;
...

Ejemplo de uso:
Código Delphi [-]
{ a portapapeles }
procedure TForm1.Button1Click(Sender: TObject);
begin
  DBGridToClipboard(TDBGridEx(DBGrid1));
end;

{ mostrar }
procedure TForm1.Button2Click(Sender: TObject);
begin
  ShowMessage(ClipBoard.AsText);
end;


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 28-12-2010 a las 04:18:50.
Responder Con Cita
 



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
Copiar contenido de Edit->Text al portapapeles de windows JuanErasmo API de Windows 4 22-01-2008 04:44:34
Copiar del portapapeles a Word carlos gonzalez Varios 0 12-03-2007 17:16:18
Copiar al portapapeles johurgi Varios 4 22-11-2006 19:47:48
Copiar del portapapeles a un DBGrid bbjb Varios 1 31-05-2006 18:23:10
Copiar el contenido de un dbgrid y pegarlo en otro lado ctronx Varios 3 25-01-2005 17:17:01


La franja horaria es GMT +2. Ahora son las 18:03:37.


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
Copyright 1996-2007 Club Delphi