PDA

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

:)