Ver Mensaje Individual
  #11  
Antiguo 05-10-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Aquí tienes un código que puede servirte; En la sección de ejemplos hay uno que trata sobre TStringGrid; Aunque es para temas de alineación, incluye una opción de copiar.
Algo así:

Código Delphi [-]
var
  i, j:Integer;
  Str:String;
begin

  // Inicializamos
  Str := '';
  // Para cada línea de las selecciondas
  for i := (StringGrid1.Selection.Top) to (StringGrid1.Selection.Bottom) do begin
    // Si no es la 1ª linea, añadimos un salto de línea
    if (i <> StringGrid1.Selection.Top) then begin
      Str := Str + #13#10;
    end;
    // Para cada elemento dentro de la línea (celdas)
    for j := 0 to (StringGrid1.Rows[i].Count - 1) do begin
      // Si no es la primera celda, añadimos un separados
      if (j <> 0) then begin
        Str := Str + ';';   <<== Cambiar por chr(VK_TAB)
      end;
      // Construimos la cadena
      Str := Str + StringGrid1.Rows[i].Strings[j];
    end;
    // La guardamos en el clipboard (como texto)
    Clipboard.AsText := Str
  end;

  MessageDlg('El contenido de la/s celda/s se ha copiado al portapapeles de windows', mtInformation, [mbOK], 0);

Si haces el cambio marcado en rojo (usar TAB en lugar de es casi lo que necesitas; La diferencia es que este en para un TStringGrid y tú lo necesitas para un DBGrid; Sólo cambia la forma de recorrer las filas seleccionadas.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita