Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Colorear celda seleccionada en StringGrid (https://www.clubdelphi.com/foros/showthread.php?t=13229)

Delphos 11-08-2004 13:38:37

Colorear celda seleccionada en StringGrid
 
Hola foro.

Mi pregunta es si se puede colorear cierta celda al hacer click en el StringGrid
y como podria hacer para pasarle como parametro el color del que quiero que la coloree.

Se que hay hilos en los que se comenta como colorear ciertas celdas, filas o columnas pero no he visto ningun hilo que haga referencia a colorear al hacer click ni como pasar como parametro el color. Si no es asi mil disculpas he indicarme el hilo.

Un pedazo de saludo para mi gente.

Nuria 11-08-2004 13:54:12

Hola Delphos!

Haz una busqueda por los foros, por ejemplo: StringGrid + celda. Seguro que encuentras la respuesta :). Te aconsejo que antes de iniciar un nuevo hilo hagas una busqueda.

Así se evitará tener hilos repetidos ;).

Un saludo!

Delphos 12-08-2004 21:29:19

Orientandolo de otra forma
 
hola foro.

Como veo que la preguntilla tiene tema hiremos por partes. Se os ocurre la forma de obtener las coordenadas de la celda al hacer click en el StringGrid ya que si es asi se puede guardar en una Matriz.

Por otra parte como podria llamar a OnDrawCell desde el vento Onclick del StringGrid.

Si me aclarais eso ya se puede hacer lo que yo queria y es que segun vayas clicando en el grid con un color seleccionado este va coloreando las celdas seleccionadas.

Muchas Gracias de Antemano.

roman 13-08-2004 01:20:21

Cita:

Empezado por Delphos
como podria llamar a OnDrawCell desde el vento Onclick del StringGrid.

No puedes. O sí puedes pero no debes.

Tú nunca llamas a un evento, ellos vienen a tí. Aunque formalmente un evento es un procedimiento, no están hechos para que los llames desde tu propio código. El mismo Delphi (el código de la VCL) es quien se encarga de hacerlo en los momentos adecuados.

En el caso particular de OnDrawCell, este evento será llamado cada vez que por cualquier razón el grid deba redibujarse.

En tu caso lo que puedes hacer es asignar en alguna variable (una matriz posiblemente) la celda sobre la que se hace click y llamar al método Refresh del grid para forzar el redibujado- y por tanto la llamada a OnDrawCell. En el código de OnDrawCell examinarás la matriz para saber de qué color le toca pintarse.

// Saludos

Delphos 15-08-2004 21:51:26

aaaaaaaa
 
Vale muchas gracias Roman por contestar. ¡¡¡ C o m p r e n d i d o !!!.

¿Se te ocurre algo para cojer las coordenadas y guardarlas en una matriz al hacer click sobre la celda?

Un Saludo.

roman 15-08-2004 23:46:30

Puedes definir un arreglo de tantas columnas y renglones como el gri. Por ejemplo:

Matriz: array[1..4; 1..5] of Boolean;

El evento OnSelectCell se genera cuando seleccionas una celda y te pasa las coordenadas en los parámetros ACol y ARow de manera que pondrías:

Matriz[ACol, ARow] := true;

indicando que ya la has seleccionado.

// Saludos

Delphos 18-08-2004 14:23:23

Tema Solucionado
 
Muchas gracias por todo Roman tema solucionado ahora sabiendo lo que se ya creo que me las puedo apañar para hacer todo lo que queria hacer.

¡¡¡¡ Muuuuuuchas Graaaaaaacias !!! :)

Un pedazo de saludo campeon.


La franja horaria es GMT +2. Ahora son las 05:20:44.

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