Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-09-2015
Olenkaguilar Olenkaguilar is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 20
Poder: 0
Olenkaguilar Va por buen camino
Copiar de un ListView al clipboard

Buenas tengo un listview y con un PopupMenu tengo 2 opciones: de copiar toda la fila y copiar todas las filas obviamente con contenido.
Código Delphi [-]
procedure TFmainViewTCP.Copy1Click(Sender: TObject);
 var
  Str:String;
  k  :Integer;
  lItem:TListItem;
 begin
   repeat
     lItem:=lvConnection.Selected;
     Str:=lItem.Caption;
     for k:=0 to lvConnection.Columns.Count-2 do
      begin
       Str:=Str+'  '+lItem.SubItems[k];
      end;
     Clipboard.AsText:=Clipboard.AsText+ sLineBreak +Str; {copy into clipboard}
   until lItem.Selected=True;
 end;
Ese code me funciona no también, no sé cuando antes tengo algo en el clipboard copiado y copio la fila seleccionada del listview, al pegar en un block de notas pega lo que tenía copiado( cualquier cosa) y lo de la fila del listview, por eso digo que no me funciona muy bien.. bueno y al pegar en el block de notas me queda de la siguiente forma:
Arroz costeño 12kg 20unid

Al pegar en un block de notas como puedo hacer para que me salga de esta forma :
PRODUCTO : Arroz , MARCA : costeño , PESO : 12kg , CANTIDAD : 20unid
Cabe mencionar que lo agregado osea lo que está en mayúscula es cada columna del listview
Responder Con Cita
  #2  
Antiguo 04-09-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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 Olenkaguilar.
Cita:
Empezado por Olenkaguilar Ver Mensaje
...
Al pegar en un block de notas como puedo hacer para que me salga de esta forma :
PRODUCTO : Arroz , MARCA : costeño , PESO : 12kg , CANTIDAD : 20unid
Cabe mencionar que lo agregado osea lo que está en mayúscula es cada columna del listview
Fijate si este ejemplo hace lo que buscas:
Código Delphi [-]
...
implementation

uses Clipbrd;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Clear;
  ListView1.RowSelect   := True;
  ListView1.MultiSelect := True;
end;

procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
  if ListView1.SelCount = 0 then
    Abort;
end;

procedure TForm1.CopySelect1Click(Sender: TObject);
var
  c,f,k : Integer;
  lv: TListView;
  s : string;
begin
  lv := ListView1;
  Clipboard.Clear;
  s := '';
  for f := 0 to lv.Items.Count - 1 do
  begin
    k := 0;
    if lv.Items[f].Selected then
    begin
      s := s + Format('%s : %s, ',[lv.Columns[k].Caption, lv.Items[f].Caption]);
      for c := 0 to lv.Items[f].SubItems.Count - 1 do
      begin
        Inc(k);
        s := s + Format('%s : %s, ',[lv.Columns[k].Caption, lv.Items[f].SubItems[c]]);
      end;
      SetLength(s, Length(s) - 2); 
      s := s + #$D#$A;
    end;
  end;
  Clipboard.AsText := s;
end;

Salida:


Saludos
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 04-09-2015 a las 14:40:50. Razón: quitar última coma
Responder Con Cita
  #3  
Antiguo 04-09-2015
Olenkaguilar Olenkaguilar is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 20
Poder: 0
Olenkaguilar Va por buen camino
ecfisa muchas gracias por el código, funciona muy bien con la fila seleccionada y las filas seleccionadas, pero también me da el caso que hay 100 o más filas; con otra opción del popup como puedo copiar todo sin estar seleccionando fila por fila . Muchas gracias por su ayuda
Responder Con Cita
  #4  
Antiguo 04-09-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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 de nuevo.

Agrega un item mas al TPopupMenu (vg.: Copiar todo) y quedaría mas o menos así:
Código Delphi [-]
...
implementation

uses Clipbrd;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Clear;
  ListView1.RowSelect   := True;
  ListView1.MultiSelect := True;
end;

procedure TForm1.Copiar1Click(Sender: TObject);
var
  c,f,k : Integer;
  lv: TListView;
  s : string;
begin
  lv := ListView1;
  if lv.SelCount = 0 then Exit;
  Clipboard.Clear;
  s := '';
  for f := 0 to lv.Items.Count - 1 do
  begin
    k := 0;
    if lv.Items[f].Selected then
    begin
      s := s + Format('%s : %s, ',[lv.Columns[k].Caption, lv.Items[f].Caption]);
      for c := 0 to lv.Items[f].SubItems.Count - 1 do
      begin
        Inc(k);
        s := s + Format('%s : %s, ',[lv.Columns[k].Caption, lv.Items[f].SubItems[c]]);
      end;
      SetLength(s, Length(s)-2);
      s := s + #$D#$A;
    end;
  end;
  Clipboard.AsText := s;
end;

procedure TForm1.Copiartodo1Click(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to ListView1.Items.Count - 1 do
    Listview1.Items[i].Selected := True;
  Copiar1Click(Sender);
end;
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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/pegar desde el Clipboard a otra Aplicación broly7 Varios 4 07-03-2011 17:08:53
Copiar objeto al clipboard eflosten OOP 2 23-04-2010 10:44:35
Edit1 copiar contenido al clipboard jedinds OOP 5 12-05-2008 21:37:16
Copiar un PaintBox al Clipboard Papitu Gráficos 1 01-10-2006 22:07:02
pasar ListView al Clipboard allende Varios 2 03-12-2003 19:31:36


La franja horaria es GMT +2. Ahora son las 14:01:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi