Ver la Versión Completa : Clipboard to tstringgrid
Cristhor1982
23-05-2013, 14:12:25
Amigos, de nuevo con el problema para pegar desde clipboard a TStringGrid...
Ahora necesito pegar esto
Equipo 12345
Fecha/Hora 23-may-2013 11:49:11 CLT
Horometro 1111
Operador 12
Cancha 20
Insumo 6789
Cantidad 121
y quede de esta forma
Equipo Fecha/Hora Horometro Operador Cancha Insumo Cantidad
15503 23-may-2013 11:49:11 CLT 1515 363 32 50085645 121
POR FAVOR AYUDA...Llevo unos dias tratando y me pega en cualquier lado....
SAludos
ecfisa
23-05-2013, 14:36:00
Amigos, de nuevo con el problema para pegar desde clipboard a TStringGrid...
Ahora necesito pegar esto
Equipo 12345
Fecha/Hora 23-may-2013 11:49:11 CLT
Horometro 1111
Operador 12
Cancha 20
Insumo 6789
Cantidad 121
y quede de esta forma
Equipo Fecha/Hora Horometro Operador Cancha Insumo Cantidad
15503 23-may-2013 11:49:11 CLT 1515 363 32 50085645 121
Hola Cristhor1982.
Basándome en los datos de tu mensaje, podrías hacer:
...
implementation
uses Clipbrd, StrUtils;
var
TitCol : array of string;
// Titulos de columna
procedure SetTitles(SG: TStringGrid; const aRow: Integer);
var
i: Integer;
begin
for i:= Low(TitCol) to High(TitCol)-1 do
SG.Cells[i,aRow] := TitCol[i];
end;
// Items
procedure SetItems(SG: TStringGrid; const aText: string; const aRow: Integer);
var
i, p1, p2: Integer;
begin
for i:= Low(TitCol) to High(TitCol)-1 do
begin
p1 := Pos(TitCol[i], aText) + Length(TitCol[i]);
p2 := PosEx(TitCol[i+1], aText, p1);
SG.Cells[i,aRow] := Copy(aText, p1, p2-p1);
end;
end;
// Ejemplo de llamada con tus datos de muestra
procedure TForm1.btnPegarClick(Sender: TObject);
const
END_CHAR = '^';
begin
// Cantidad de títulos de columna
SetLength(TitCol, 8);
// Texto de títulos de columna
TitCol[0] := 'Equipo'; TitCol[1] := 'Fecha/Hora'; TitCol[2] :='Horometro';
TitCol[3] := 'Operador'; TitCol[4] := 'Cancha'; TitCol[5] :='Insumo';
TitCol[6] := 'Cantidad'; TitCol[7] := END_CHAR;
// Mostrar títulos StringGrid
SetTitles(StringGrid1, 0);
// Mostrar Items en StringGrid
SetItems(StringGrid1, Clipboard.AsText + END_CHAR, 1);
// Vaciar TitCol
Finalize(TitCol);
end;
...
Saludos. :)
Cristhor1982
24-05-2013, 16:37:45
Hola Ecfisa
Muchas Gracias, me ha servido, ahora lo adopto...a mi proyecto...saludos, de nuevo muchas gracias
:)
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.