Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Clipboard to tstringgrid (https://www.clubdelphi.com/foros/showthread.php?t=83225)

Cristhor1982 23-05-2013 14:12:25

Clipboard to tstringgrid
 
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

Cita:

Empezado por Cristhor1982 (Mensaje 461072)
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;

// 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

:)


La franja horaria es GMT +2. Ahora son las 14:48:04.

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