Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Resaltar Fila StringGrid (https://www.clubdelphi.com/foros/showthread.php?t=33142)

Caro 28-06-2006 16:09:40

Resaltar Fila StringGrid
 
Hola a todos

Me he leido casi todos los hilos de pintar en un string Grid pero aun no he solucionado mi problema y ya estoy muy desesperada por eso les pido su ayuda amigos.

Lo que quiero hacer es que se resalte pìntandose toda la fila del StringGrid de la celda que tiene el foco, osea que si me voy moviendo con los cursores que se resalte de otro color la fila donde estoy. Y que tambien pueda pintar el mismo numero de fila de otro stringGrid, osea que en cuanto se pinte la fila seleccionada del primer StringGrid tambien pinte la misma fila del otro StringGrid, espero se entienda.

Esto es lo que hice:
Código Delphi [-]
procedure TForm1.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var
  i:Integer;
  texto:STring;
begin
   For i:=1 to StringGrid2.ColCount-1 Do
   begin
      If (gdSelected in State) Then
      begin
         StringGrid2.Canvas.Font.Color := clred;
         StringGrid2.Canvas.Font.Style:=[fsBold];
      end
      Else
         StringGrid2.Canvas.Font.Color := clBlack;

      Texto := StringGrid2.Cells[ACol,ARow];
      StringGrid2.Canvas.TextRect( Rect, Rect.Left+2, Rect.Top+2, Texto);
   end;

Con este codigo me resalta de rojo la celda seleccionada pero yo quiero que se resalte toda su fila y nose como hacerlo hice pruebas y no me sale siempre lo mismo solo la celda, nisiquiera puedo pintar la misma fila de otro stringGrid.

Saludos y que tengan un bonito dia

Neftali [Germán.Estévez] 28-06-2006 16:30:12

Si haces una búsqueda en los foros por "Color StringGrid" verás que salen bastantes resultados para resolver ésta duda.

Caro 28-06-2006 16:43:38

Muchas gracias por responder amigo Neftali, te prometo que hice una busqueda y que me he leido todos los hilos en cuanto a "stringGrid color" pero no lo he solucionado :( .

Cambiando esta condición

If (gdSelected in State) Then

por esta

If (arow=1) Then

pinto toda la fila, pero yo quiero que se pinte la fila que tiene el foco y a lo mas que he llegado es ha pintar la celda que tiene el foco, agradecere mucho su ayuda.

Neftali [Germán.Estévez] 28-06-2006 17:33:45

Prueba a cambiar la propiedad Options del StringGrid y asignar al valor goRowSelect un True.

Caro 28-06-2006 17:47:45

Eso era lo que faltaba, muchisimas Gracias amigo Neftali, sera posible si me podrias dar una pequeña idea de como soluciono mi otro problema que mensione arriba por favor.

Cita:

Empezado por Caro
............

Y que tambien pueda pintar el mismo numero de fila de otro stringGrid, osea que en cuanto se pinte la fila seleccionada del primer StringGrid tambien pinte la misma fila del otro StringGrid

..............

es posible hacer esto, como manejaria el otro stringGrid, creo que estoy volando no se como hacerlo, Muchisimas gracias por adelantado.

Neftali [Germán.Estévez] 28-06-2006 18:12:02

¿Pero entre ambos grids y las filas existe alguna concordancia? ¿O te refieres al númro de fila, 3ª, 4ª,...?

Caro 28-06-2006 19:13:34

Si existe condarcia Neftali, lo que pasa es que necesitaba hacer dos columnas fixed por el hecho de que estas columnas por mas que recorras entre las celdas, siempre son visibles, pero esta segunda columna fixed debia ser la ultima columna, por lo cual me respondieron en un hilo que abri que no era posible mover columnas fixed, entonces lo unico que se me ocurrio fue poner otro stringGrid a lado del primer stringGrid y sincronizarlos que cuando me mueva en uno tambien se mueva el otro hasta aqui todo bien. Ahora si estoy resaltando la fila del primer stringGrid tambien debo resaltar la misma fila del segundo StringGrid, para que parescan que son uno solo, espero se entienda y muchisimas gracias por seguir ayudandome.

Neftali [Germán.Estévez] 29-06-2006 11:46:41

Ahora sí te he entendido. :D
Suponiendo que el segundo StringGrid se llame StringGrid2 (qué original :D) en el evento OnSelectCell del primero coloca éste código:

Código Delphi [-]
  StringGrid2.Row := ARow;

y listo!!

Caro 29-06-2006 14:50:57

Muchisimas Gracias amigo Neftali, ya tenia puesto el codigo que pusiste en mi codigo y la verdad si que funciona como yo queria, yo estaba cometiendo un error, en mi primer StringGrid pintaba desde la columna 1 hasta el final y tambien en el segundo stringGrid, pero el segundo solo tenia una columna , por lo que debia pintar solo la columna 0, ahi era mi error que ahora esta arreglado, muchisimas gracias por haberme hecho dar cuenta ;).

Saludos


La franja horaria es GMT +2. Ahora son las 08:41:46.

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