Comunidad Gambas-es
[SOLUCIONADO] Es posible cambiar el color de la fila seleccionada en un GridView - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: General (https://gambas-es.org/forum-4.html)
+--- Tema: [SOLUCIONADO] Es posible cambiar el color de la fila seleccionada en un GridView (/thread-391.html)

Páginas: 1 2


Es posible cambiar el color de la fila seleccionada en un GridView - gambafeliz - 04-05-2021

Hola

Cuando uno hace un click en una celda, la fila donde esta esta celda se ilumina con un color. ¿Es posible cambiar el color de la selección o es algo que va emparejado con el sistema operativo?

Gracias.


RE: Es posible cambiar el color de la fila seleccionada en un GridView - tincho - 04-05-2021

(04-05-2021, 18:47)gambafeliz escribió: ¿Es posible cambiar el color de la selección o es algo que va emparejado con el sistema operativo?

Que yo sepa no se puede. El color esta relacionado con el tema del escritorio no con el sistema operativo.
Saludos.


RE: Es posible cambiar el color de la fila seleccionada en un GridView - vuott - 05-05-2021

No se si te puede dar ayuda esta pagina del wiki italiano:

   https://www.gambas-it.org/wiki/index.php?title=Cambiare_il_colore_di_fondo_di_una_riga_cliccata_in_una_GridView_e_far_tornare_quello_di_un%27altra_al_colore_iniziale


RE: Es posible cambiar el color de la fila seleccionada en un GridView - gambafeliz - 05-05-2021

Hola vuott, observo por el código que lo que hacen es simplemente eliminar la selección natural por una reescrita desde la parte de usuario-programador. Si me sirve, gracias. Aunque no estoy del todo contente. Supone hacer un módulo, clase para todo mi código, no se, lo pienso.

Gracias, tincho. No se si es muy osado por mi parte pero existe alguna posibilidad que me recomiendes o me recomendéis alguna forma de cambiar este color con algún programa o parte del sistema que edite esto en el escritorio "GNOME 3.30.2", por supuesto sin compromiso, te lo dejo en tu mano si quieres. Por supuesto voy a mirar yo también para ver si encuentro algo, pero os lo pido por que yo comparado con ustedes llevo en Linux nada.

Mil gracias a los dos.


RE: Es posible cambiar el color de la fila seleccionada en un GridView - cogier - 06-05-2021

Pruebe este código en una aplicación gráfica.
Código:
hGridview As GridView

Public Sub Form_Open()

  Dim iRow, iCol As Integer

  With Me
    .H = 675
    .W = 575
    .Arrangement = Arrange.Vertical
    .Padding = 5
  End With

  With hGridview = New GridView(Me) As "hGridview"
    .Expand = True
    .Columns.Count = 10
    .Rows.Count = 30
  End With

  For iCol = 0 To hGridview.Columns.Max
    For iRow = 0 To hGridview.Rows.Max
      hGridview[iRow, iCol].Text = "Hola"
    Next
  Next

End

Public Sub hGridview_Click()

  Dim iRow, iCol As Integer

  For iCol = 0 To hGridview.Columns.Max
    For iRow = 0 To hGridview.Rows.Max
      hGridview[iRow, iCol].Background = Color.Default
      hGridview[iRow, iCol].Foreground = Color.Default
      hGridview[iRow, iCol].Font.Bold = False
    Next
  Next

  For iCol = 0 To hGridview.Columns.Max
    hGridview[Last.Row, iCol].Background = Color.Red          ''***
    hGridview[Last.Row, iCol].Foreground = Color.Yellow       ''***
    hGridview[Last.Row, iCol].Font.Bold = True
  Next

End



RE: Es posible cambiar el color de la fila seleccionada en un GridView - Shordi - 14-05-2021

Prueba ésto.
Se Puede cambiar también el tamaño y color de la fuente, que el alto de la fila se ajuste al texto, etc. Pero con eso te haces una idea.

Saludos


RE: Es posible cambiar el color de la fila seleccionada en un GridView - gambafeliz - 14-05-2021

Me puede valer, aunque tengo que seguir pensando como hacerlo más simple. Es que sino tengo que implementarlo en todos los Grid, aunque ya se que se puede globalizar con un módulo, por ejemplo.

Muchísimas gracias de verdad. Aunque se me ha metido en la cocorota que tengo que buscar algo mas mágico, por favor, esto no es cosa tuya ya sabes que es más que suficiente lo que me has sugerido, soy yo que soy muy cabezón.


RE: Es posible cambiar el color de la fila seleccionada en un GridView - Shordi - 14-05-2021

Cita:Es que sino tengo que implementarlo en todos los Grid
No necesariamente. Crea un control que herede de gridview y que lo haga automáticamente. Sólo tienes que usar ese control en lugar de los GridView.


RE: Es posible cambiar el color de la fila seleccionada en un GridView - gambafeliz - 14-05-2021

Mis disculpas Shordi. Tienes razón, lo he estado meditando todo, y sí, es suficiente tal como me dices. Voy a implementar lo que me cuentas, gracias. Otra cosa para quien le interese, mirad este hilo de cogier, en su foro hay cosas muy muy interesante.

https://forum.gambas.one/viewtopic.php?t=562


RE: Es posible cambiar el color de la fila seleccionada en un GridView - Shordi - 15-05-2021

(14-05-2021, 18:19)gambafeliz escribió: Me puede valer, aunque tengo que seguir pensando como hacerlo más simple. Es que sino tengo que implementarlo en todos los Grid, aunque ya se que se puede globalizar con un módulo, por ejemplo.

Muchísimas gracias de verdad. Aunque se me ha metido en la cocorota que tengo que buscar algo mas mágico, por favor, esto no es cosa tuya ya sabes que es más que suficiente lo que me has sugerido, soy yo que soy muy cabezón.

De todas formas, y sólo por el placer de volver a menear los dedos oxidados, te adjunto un ejemplo de cómo queda un control propio que te hace el trabajo de forma transparente.Sólo tienes que añadir la clase "MiGrid" al proyecto y voilá.

Ha sido divertido.

Saludos

El código es muy simple:


Código:
' Gambas class file

Export

Inherits GridView

Public Const _Properties As String = "*"
Public Const _Group As String = "View"
Public Const _Similar As String = "GridView"
Public Const _drawWith As String = "GridView"

Private $obs As Observer
Private $oldRow As Integer
Private $oldColumn As Integer
 
 Public Sub _new()

     $obs = New Observer(Me) As "grid"

End

Public Sub grid_Change()
    
    Me[$oldrow, $oldColumn].Background = Color.TextBackground
    Me[$oldrow, $oldColumn].Foreground = Color.Foreground
    Me[Me.row, Me.column].Background = Color.SelectedBackground
    Me[Me.row, Me.column].Foreground = Color.SelectedForeground
    $oldcolumn = Me.Column
    $oldrow = Me.Row

End
Se pueden hacer multitud de cosas con éste sistema. Si te interesa puedo subir alguna clase como ésta que hace más cosas y, por tanto, es más compleja.

¿Alguien me puede explicar cómo poner código en colorines? El botón ese de la gamba cocida no me funciona, al parecer.
Huh Huh