Foros del Web » Programación para mayores de 30 ;) » Programación General »

portapapeles en delphi

Estas en el tema de portapapeles en delphi en el foro de Programación General en Foros del Web. Hola, bueno mi problema es el siguiente, en excel tengo una columna de informacion la selecciono y la quiero pegar en mi aplicacion siendo esto ...
  #1 (permalink)  
Antiguo 05/01/2005, 16:18
Avatar de padrino  
Fecha de Ingreso: mayo-2004
Ubicación: Aguascalientes, Ags. la tierra de la gente buena
Mensajes: 161
Antigüedad: 19 años, 10 meses
Puntos: 0
portapapeles en delphi

Hola, bueno mi problema es el siguiente, en excel tengo una columna de informacion la selecciono y la quiero pegar en mi aplicacion siendo esto en un stringgrid, y la verdad he investigado pero no entiendo mucho como puedo manipular el portapapeles. espero me puedan ayudar
__________________
The God Father
__________________________________________
No hay un error tan grande como el de no seguir adelante (:pensando:) William Blake
  #2 (permalink)  
Antiguo 06/01/2005, 04:13
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola padrino

En Delphi tienes el objeto TClipboard y algunos controles, por ejemplo los TEdit, tienen los métodos CopyToClipboard y PasteFromClipboard (copiar al portapapeles y pegar desde el portapapeles). En la propia ayuda de Delphi encontrarás información y algún ejemplo.

Espero que esto te oriente algo. Saludos,
  #3 (permalink)  
Antiguo 06/01/2005, 08:59
Avatar de padrino  
Fecha de Ingreso: mayo-2004
Ubicación: Aguascalientes, Ags. la tierra de la gente buena
Mensajes: 161
Antigüedad: 19 años, 10 meses
Puntos: 0
De acuerdo pero como lo manipulo el portapapeles

Gracias JavierB, la verdad no sabia de ese metodo es muy interesante, mira hasta ahorita lo que he logrado es pegar el contenido del portapapeles en un richedit, en los edit tambien, pero lo que no puedo es copiar por ejemplo una columna de datos de excel y pegarla en un stringgrid, ya lo que trate de un principio era pasar el contenido del portapepeles a una variable string y manipularla, pero cuando copio de excel los datos los separa por medio de 2 caracteres rarros paresen "||" y se me figura que no seria el procedimiento adecuado el manipular esa cadena.
__________________
The God Father
__________________________________________
No hay un error tan grande como el de no seguir adelante (:pensando:) William Blake
  #4 (permalink)  
Antiguo 06/01/2005, 13:00
Avatar de padrino  
Fecha de Ingreso: mayo-2004
Ubicación: Aguascalientes, Ags. la tierra de la gente buena
Mensajes: 161
Antigüedad: 19 años, 10 meses
Puntos: 0
Sonrisa pegar los datos del portapapeles en un stringgrid

Bueno, ya pude, y este es el codigo que utilize: por si a alguien mas le sirve, y gracias por tu ayuda JavierB fue de gran ayuda. les comento que esto funcion de la siguiente forma copia una columna de datos de excel y dando click en un boton de la aplicacion se pegaran en un stringgrid

Cita:
procedure TfrmCompararRegistros.btnDatosOrigenClick(Sender: TObject);
var
Vtextbuf:string;
Vnren:integer;
begin
if Clipboard.HasFormat(CF_TEXT) then
begin
Vtextbuf:= Clipboard.AsText;
Vnren:=0;
stringgrid1.RowCount:=1;
while (pos(#13,Vtextbuf)>0)and(length(Vtextbuf)>2) do
begin
stringgrid1.Cells[0,Vnren]:=copy(Vtextbuf,1,pos(#13,Vtextbuf)-1);
delete(Vtextbuf,1,pos(#13,Vtextbuf)+1);
if (length(Vtextbuf)>2) then
begin
stringgrid1.RowCount:=stringgrid1.RowCount+1;
Vnren:=Vnren+1;
end;
end;
end
else
ShowMessage('No hay texto en el PortaPapeles/There is no text on the Clipboard');
end;


tambien se debera de agregar en la seccion de uses "clipbrd"
__________________
The God Father
__________________________________________
No hay un error tan grande como el de no seguir adelante (:pensando:) William Blake

Última edición por padrino; 06/01/2005 a las 13:03 Razón: falto respuesta
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:09.