Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-11-2011
rruffino rruffino is offline
Miembro
 
Registrado: dic 2004
Ubicación: Berrotaran, Cordoba - Argentina
Posts: 215
Poder: 20
rruffino Va por buen camino
Smile Colorear StringGrid al hacer click

Hola gente, tengo un stringgrid que lo cargo con información en tiempo de ejecución. Lo que necesito hacer es que ni bien se termine de cargar los datos, todas las filas tengan un único color y que al clickear en una fila se pinte de color (por ejemplo verde) toda la fila, y al volverla a clickear vuelva al color original. Esto lo necesito para identificar cuales filas he seleccionado para un posterior tratamiento.
Otra forma que me serviría es poniendo un checkbox dentro del stringgrid, pero he leído en el foro y no me ha salido. Aguardo cualquier sugerencia. Gracias!!!
Responder Con Cita
  #2  
Antiguo 30-11-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.267
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
OPCIÓN 1:
Crear una columna oculta en el StriungGrid (Columm Width = 0) de forma que almacene 0 o 1; El valor de esa columna es el que te sirve para pintar diferente. Hace la función del Checkbox que quieres añadir. Cada vez que pulsas en una fila cambias el valor de esa columna.

El pintado de un color u otro irá en relación a ese valor.

OPCIÓN 2:

Yo utilizaría una estructura anexa (por ejemplo un TList o TStrinsList -mejor este ordenado-) para guardar las filas que tienes seleccionadas.

(1) Al pulsar un Click, buscas si la fila está en la lista:
1a) Si está, borras ese indice de la lista
1b) Si no está, añades ese índice a la lista
2) Repintar el Grid

En el pintado del grid, lo que tienes que hacer es pintar de diferente color los índices de la lista.
__________________
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 01-12-2011
rruffino rruffino is offline
Miembro
 
Registrado: dic 2004
Ubicación: Berrotaran, Cordoba - Argentina
Posts: 215
Poder: 20
rruffino Va por buen camino
Cool Graacias por la respuesta

Hola Neftalí, gracias por la pronta y efectiva respuesta. Ya lo he podido hacer. Ahora lo que necesito es poder mostrar un numero fijo de filas, es decir, suponte que tengo 30 filas cargadas, yo quisiera ir mostrando de 10 en 10 en el stringgrid, eso es factible???
Muchas gracias nuevamente.
Saludos!
Responder Con Cita
  #4  
Antiguo 01-12-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.267
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
Cita:
Empezado por rruffino Ver Mensaje
lo que necesito es poder mostrar un numero fijo de filas, es decir, suponte que tengo 30 filas cargadas, yo quisiera ir mostrando de 10 en 10 en el stringgrid, eso es factible???
No te he entendido muy bien lo que quieres hacer.
¿Qué significa ir mostrando de 10 en 10?
¿Cómo cambias a las siguientes?
__________________
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
  #5  
Antiguo 01-12-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 rruffino, una función que salte a las siguientes X filas creo que no hay, tendrías que hacerte una mas o menos así:

Código Delphi [-]
procedure SaltarRows(StringGrid : TStringGrid; Cant : Integer);
var  RowActual, RowSig : Integer;
begin
 RowActual := StringGrid.Row;
 RowSig := RowActual+Cant;

 if RowSig<1 then
  RowSig:=1
 else
  if RowSig>StringGrid.RowCount-1 then
   RowSig := StringGrid.RowCount-1;

 StringGrid.Row := RowSig;
end;
//llamada
 SaltarRows(StringGrid1, 10);
 //o
 SaltarRows(StringGrid1, -10);

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: 01-12-2011 a las 17:00:59.
Responder Con Cita
  #6  
Antiguo 01-12-2011
rruffino rruffino is offline
Miembro
 
Registrado: dic 2004
Ubicación: Berrotaran, Cordoba - Argentina
Posts: 215
Poder: 20
rruffino Va por buen camino
Explico un poco mejor

Amigo Neftali, gracias por responder.
Te trato de explicar un poco mejor.
Yo cargo el stringgrid con lo que saco de una consulta de una tabla.
Lo que quiero saber si se puede hacer es que el stringrid vaya mostrando de a 10 filas para evitar usar el scrollbar. De esta forma, si yo en la consulta obtuve 30 registros que pase al stringgrid, mostraria los primeros 10 en el stringgrid, luego de alguna forma deberia decirle al stringgrid que muestre del 11 al 20 y luego del 21 al 30.
Espero me hayas entendido.
Gracias!!
Responder Con Cita
  #7  
Antiguo 01-12-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.267
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
Ok, ahora lo he entendido.
Sí puedes hacerlo, básicamente se trata de cargar los que quieras.

Imagino que al ser un TStringGrid y los datos que provienen de una tabla debes hacer la carga manualmente con un:

Código Delphi [-]
  while not Query.EOF do
   ....

En este caso basta con que realices un FOR y cargues sólo los 10 primeros registros que te devuelve la consulta. Mantienes el DataSet (Query) abierto, y para cargar los siguientes, vuelves a utilizar un FOR desde el registro en el que te habías quedado.

Como alternativa puedes volcar el resultado sobre un TclientDataset, cerrar la consulta, y consumir los datos desde ahí, pero en todo aso, esto puedes hacerlo si es necesario en un segundo paso, cuando ya funcione lo primero.
__________________
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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Saber al boton que se le dio click en un StringGrid chico_bds OOP 2 11-11-2009 18:52:26
Colorear celda de un stringgrid nikotina Varios 5 01-03-2007 12:31:56
capturar click en la columna de titulo StringGrid poliburro Varios 10 23-01-2006 12:12:21
Colorear lineas en StringGrid gario OOP 3 30-05-2005 18:19:38
Colorear celda seleccionada en StringGrid Delphos Varios 6 18-08-2004 14:23:23


La franja horaria es GMT +2. Ahora son las 04:30:15.


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