PDA

Ver la Versión Completa : Colorear celda seleccionada en StringGrid


Delphos
11-08-2004, 13:38:37
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
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
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
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
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.