Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-12-2012
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Poder: 12
Cristhor1982 Va por buen camino
Código Delphi [-]
procedure TFR_EliminacionFolioMasivo.SG1KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
var
  TS: TStrings;
  j,i : Integer;
begin
if ((ssCtrl in Shift) and (Key = 86)) or ((ssShift in Shift) and (Key = 45)) then
  if Clipboard.HasFormat(CF_TEXT) then
    with SG1 do
    begin
      TS := TStringList.Create;
      try
        TS.Text := clipboard.AsText;
        RowCount := TS.Count+1;
        for i:= 0 to TS.Count-1 do
        begin


          Cells[SG1.Col,SG1.Row+i]:= TS[i];   //desde row 1

          screen.Cursor := crsqlwait;
          fr_clave.SQL.Close;
              fr_clave.SQL.SQL.Clear;
              fr_clave.SQL.SQL.Add('EXEC_aCTeLIMINACIONfOLIOv2 1,0,');
              if ((Cells[1,1+i]<>'')AND ((Cells[2,1+i])<>'')) then
                begin
                 fr_clave.SQL.SQL.Add(''''+ Cells[1,1+i] +''',''' + Cells[2,1+i] +''',0,0,0,');
                 end
                 else
                 if ((Cells[1,1+i]<>'') AND (Cells[2,1+i]='')) then
                 begin
                 fr_clave.SQL.SQL.Add(''''+ Cells[1,1+i] +''',-1,0,0,0,')
                 end
                else
                fr_clave.SQL.SQL.Add('-1,''' + Cells[2,1+i] +''',0,0,0,');
                fr_clave.SQL.SQL.Add(''''+ fr_clave.TX_Rut.Text +''',0,0,0');
                fr_clave.SQL.Open;
                  if fr_clave.SQL.RecordCount <> 0 then
                  BEGIN

                 // SG1.RowCount :=SG1.RowCount+1;
                  SG1.Cells[1,i+1 ] := fr_clave.SQL['Folio'];
                  SG1.Cells[2,i+1 ] := fr_clave.SQL['Vale'];
                  SG1.Cells[3,i+1 ] := fr_clave.SQL['Periodo'];
                  SG1.Cells[4,i+1] := fr_clave.SQL['RutVisador'];
                  SG1.Cells[6,i+1 ] := fr_clave.SQL['RutVisado'];
                  SG1.Cells[8,i+1 ] := fr_clave.SQL['Motivo'];
                  SG1.Cells [5,i+1 ] := NombreTrabajador(SG1.Cells[4,i+1]);
                  SG1.Cells [7,i+1 ] := NombreTrabajador(SG1.Cells[6,i+1]);

          end;
          for j := 0 to 8 do
          begin
          SG1.Cells[j, SG1.RowCount] := '';
          end;
          end;
      finally
        screen.Cursor := crdefault;
        TS.Free;
        //clipboard.Clear;

    end;
end
  else
    ShowMessage('No hay texto en el PortaPapeles');
end;



Esto esta funcionando "Bien", pero necesito que los valores Vacios de lo que copio no los inserte, trate con un IF TS[i]='' then..etc
pero no puedo, alguien que me de una pista
Responder Con Cita
  #2  
Antiguo 18-12-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Cristhor1982,

Cita:
Empezado por Cristhor1982
Necesito que los valores Vacios de lo que copio no los inserte, trate con un IF TS[i]='' then..etc pero no puedo
La solución que te propuse en el Mensaje #4 tiene el siguiente código:
Código Delphi [-]
procedure Split(const Delimiter: Char; Input: string; const Strings: TStrings);
begin
   Strings.Clear;
   Strings.Delimiter := Delimiter;
   Strings.DelimitedText := Input;
end;
Luego, si hay texto en el Clipboard este es procesado:
Código Delphi [-]
 if Clipboard.HasFormat(CF_TEXT) then
   begin
      Split(' ',Clipboard.AsText,StrList);
   ...
De esta forma solo se copia al TStringList los valores diferentes de blanco del Clipboard, usando el carácter blanco como separador de data.

Adicionalmente:
Código Delphi [-]
IF TS[i]='' Then
No verifica si el valor es blanco, solo verifica si el valor es empty, contrariamente:
Código Delphi [-]
IF TS[i]=' ' Then
Si verifica si el valor es blanco.

Te sugiero probar ambas opciones e implementes la que mejor se adapte a tu proyecto.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 18-12-2012 a las 22:53:50.
Responder Con Cita
  #3  
Antiguo 21-12-2012
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Poder: 12
Cristhor1982 Va por buen camino
Cita:
Empezado por nlsgarcia Ver Mensaje
Cristhor1982,


La solución que te propuse en el Mensaje #4 tiene el siguiente código:
Código Delphi [-]
procedure Split(const Delimiter: Char; Input: string; const Strings: TStrings);
begin
   Strings.Clear;
   Strings.Delimiter := Delimiter;
   Strings.DelimitedText := Input;
end;
Luego, si hay texto en el Clipboard este es procesado:
Código Delphi [-]
 if Clipboard.HasFormat(CF_TEXT) then
   begin
      Split(' ',Clipboard.AsText,StrList);
   ...
De esta forma solo se copia al TStringList los valores diferentes de blanco del Clipboard, usando el carácter blanco como separador de data.

Adicionalmente:
Código Delphi [-]
IF TS[i]='' Then
No verifica si el valor es blanco, solo verifica si el valor es empty, contrariamente:
Código Delphi [-]
IF TS[i]=' ' Then
Si verifica si el valor es blanco.

Te sugiero probar ambas opciones e implementes la que mejor se adapte a tu proyecto.

Espero sea útil

Nelson.
Al final lo solucione con una variable x que almacenaba y luego en un ciclo le preguntaba si era '' ...y funciono.. Gracias
Responder Con Cita
  #4  
Antiguo 23-05-2013
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Poder: 12
Cristhor1982 Va por buen camino
Ayuda (2) - Clipboard hacia 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
Responder Con Cita
  #5  
Antiguo 23-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Cristhor1982.

Recuerda que: preguntas diferentes = hilos diferentes (Punto 8 de la guía de estilo).

Saludos y gracias por tu colaboración
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Copiar/pegar desde el Clipboard a otra Aplicación broly7 Varios 4 07-03-2011 17:08:53
Pegar imagen desde el Portapapeles (Clipboard) gluglu Gráficos 8 20-10-2010 15:09:55
tabla a clipboard picap Varios 4 13-05-2010 08:23:07
Copiar Y Pegar texto en las celdas de un StringGrid rgstuamigo OOP 2 01-12-2008 13:55:51
Una clase al ClipBoard bustio OOP 2 07-07-2004 00:35:16


La franja horaria es GMT +2. Ahora son las 02:18:05.


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
Copyright 1996-2007 Club Delphi