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 21-10-2011
CarlosAlberto CarlosAlberto is offline
Miembro
 
Registrado: ago 2010
Posts: 78
Poder: 14
CarlosAlberto Va por buen camino
Seleccionar y Copiar una fila de un StringGrid

Estimados amigos del club: ¿cómo puedo hacer para seleccionar toda una columna de un StringGrid y copiar su contenido en otra columna del mismo?
Muchas gracias por su repuesta.
Saludos.
Carlos Alberto
Responder Con Cita
  #2  
Antiguo 21-10-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
En esta entrada de mi blog, se habla de cómo tratar con el portapapeles en Windows. A parte de que te pueda interesar la lectura, el ejemplo que se adjunta es justo de cómo realizar Copy/Paste de filas de un StringGrid.
Revisa el código dele ejemplo, porque creo que es justo o que necesitas.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 21-10-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola CarlosAlberto, seleccionar directamente creo que no se puede, para seleccionar la columna y se note, lo que se me ocurre es que pintes dicha columna, haciendo click sobre el titulo de la columna, pero como el StringGrid no tiene un evento OnTitle, podriamos utilizar el evento OnMouseDown y el procedimiento MouseToCell:

Utilizamos la variable Global Columna, para guardar la columna cuando se ha hecho Click sobre el titulo y la que va a ser pintada

Código Delphi [-]
//Variables globales
Columna : Integer;
ColSelect, RowSelect : Integer;

//en el evento OnMouseDrawCell

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  texto:String;
begin
 if (Columna>0) and (ACol=Columna) and (ARow>0) then
 begin
  With StringGrid1 do
   begin
    Canvas.Font.Color := clBlue;
    Canvas.Brush.Color := clRed;
    Canvas.FillRect(Rect);
    Texto := Cells[ACol,ARow];
    Canvas.TextRect( Rect, Rect.Left+2, Rect.Top+2, Texto);
   end;
 end;
end;

//En el evento OnMouseDown, detectamos si se ha hecho click sobre el titulo
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  StringGrid1.MouseToCell(X,Y,ColSelect,RowSelect);
 if RowSelect=0 then
 begin
  Columna := ColSelect;
  StringGrid1.Refresh;
 end;
end;

//y en el evento OnCreate de tu formulario inicializas tu variable global
Columna := 0;

Revisa la pagina que te ha indicado Neftali, hay muchas cosas que te pueden ayudar .

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 21-10-2011 a las 17:20:09.
Responder Con Cita
  #4  
Antiguo 21-10-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Ahora, para copiar una columna en otra, un ejemplo (seleccionamos la columna que queremos copiar, luego seleccionas la columna donde se va a copiar y presionas en el boton copiar), esta parte es depende de ti, como desees que se haga, solo es una idea.

Código Delphi [-]
//añadimos una variable global mas
ColSelectAnt : Integer;

//En el evento OnMouseDown
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 ColSelectAnt := ColSelect; // guardamos la columna anterior
 StringGrid1.MouseToCell(X,Y,ColSelect,RowSelect);
  .......................................
  .......................................
end;

//El codigo de tu boton que hace la copia sería:
begin
 for i:=0 to StringGrid1.RowCount-1 do
  StringGrid1.Cells[ColSelect,i] := StringGrid1.Cells[ColSelectAnt,i];
end;

//Inicializas en el OnCreate tu nueva variable
ColSelectAnt := -1;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 23-01-2012
monfa monfa is offline
Registrado
 
Registrado: ene 2012
Posts: 3
Poder: 0
monfa Va por buen camino
me pueden ayudar

como hacer que una celda sea soloamente editable y saber si esta llena o no
Responder Con Cita
  #6  
Antiguo 23-01-2012
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 monfa y bienvenido a los foros de Club Delphi

Te invito a que leas nuestra Guía de estilo.

Por favor, crea un nuevo hilo con tu consulta, dale un título que se relacione con el contenido de ella y explíca detalladamente que es lo que estás buscando (Es decir, nombre del componente sobre el que tenés la duda, resultado que esperas, etc, etc... )


Un saludo y muchas gracias por tu colaboración.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 04-02-2012
CarlosAlberto CarlosAlberto is offline
Miembro
 
Registrado: ago 2010
Posts: 78
Poder: 14
CarlosAlberto Va por buen camino
Estimada Caro: gracias por la respuesta sobre copiar una columna de un Stringgrid
Saludos.
Carlos Alberto
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
DBGRID ¿como seleccionar fila y obtener datos de la fila ? JXJ Varios 5 18-04-2017 02:50:14
Seleccionar una fila de un DBGrid chinchan C++ Builder 3 09-03-2010 16:58:37
seleccionar y modificar fila por fila enMYSQL schaka SQL 14 20-03-2008 06:06:23
Seleccionar una fila de un dbgrid luigi_cr Conexión con bases de datos 3 24-08-2007 22:32:32
Seleccionar fila en rejilla... superhopi OOP 2 08-07-2003 19:02:46


La franja horaria es GMT +2. Ahora son las 01:38:13.


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