Cita:
Empezado por Cristhor1982
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:
Código Delphi
[-]
...
implementation
uses Clipbrd, StrUtils;
var
TitCol : array of string;
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;
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;
procedure TForm1.btnPegarClick(Sender: TObject);
const
END_CHAR = '^';
begin
SetLength(TitCol, 8);
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;
SetTitles(StringGrid1, 0);
SetItems(StringGrid1, Clipboard.AsText + END_CHAR, 1);
Finalize(TitCol);
end;
...
Saludos.