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.
(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.
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.
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
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
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.
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.
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
(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.
