Hola a todos.
En el pequeño programa que estoy haciendo tengo una ventana en la cual hay un GridView, usando las bibliotecas Qt5 y la versión de gambas es la 3.9.2, que contiene números. Lo que pretendo es que cada vez que se redimensione el GridView el tamaño de la fuente aumente o disminuya en proporción al tamaño del GridView. He estado buscando, pero no he encontrado nada al respecto. ¿Alguien me puede ayudar?
Muchas gracias.
Un saludo.
Aumentar El Tamaño De La Fuente
Objetivo: Re: Aumentar El Tamaño De La Fuente
tiro una idea a lo mejor te sirve, con un select case fabrica un rango
que si el gridvied mide tanto de ancho y tanto de alto ponga tal tamaño de fuente, si tiene otro rango entonces otro tamaño de fuente etc.
jaja es que desconozco otro forma
saludos
que si el gridvied mide tanto de ancho y tanto de alto ponga tal tamaño de fuente, si tiene otro rango entonces otro tamaño de fuente etc.
jaja es que desconozco otro forma
saludos
Objetivo: Re: Aumentar El Tamaño De La Fuente
Por ejemplo para un GridView llamado grwData
El gridView tiene una propiedad grwData.Font.Grade, eso es lo que tienes que meter en un código como por ejemplo:
Es decir cada vez que el evento BeforeArrange sea lanzado cambiaran las propiedades del texto del gridview
Saludos.
Guizans escribió: [Ver mensaje]
Por ejemplo para un GridView llamado grwData
El gridView tiene una propiedad grwData.Font.Grade, eso es lo que tienes que meter en un código como por ejemplo:
Es decir cada vez que el evento BeforeArrange sea lanzado cambiaran las propiedades del texto del gridview
Saludos.
Objetivo: Re: Aumentar El Tamaño De La Fuente (SOLUCIONADO)
última edición por Guizans el Martes, 04 Julio 2017, 22:35; editado 1 vez
Hola.
Gracias por contestar, pero ando un poco perdido. He estado haciendo pruebas y no consigo lo que quiero. Pero para intentar ordenar las ideas una pregunta, ¿para que sirve el método BeforeArrange? ¿Cuando es llamado?
A ver si estoy haciendo las cosas mal y por eso no me sale. Me explico. Tengo el GridView dentro de un contenedor Panel. Una vez que se abre la ventana, llama a un método, por ejemplo divide(), que sabiendo la altura y la anchura del Panel lo divido por las celdas que quiero, 15x5 en mi caso. A continuación llamo a un método, rellena(), que es el encargado de mostrar el texto en cada celda. Lógicamente ahí ya tendré que decirle que altura de texto quiero, ¿no?, supongo que el código que me ha pasado tincho. Muy bien, cada vez que se redimensiona la ventana tengo un método Form_Resize, que llama a su vez al método que divide y rellena. ¿Donde encaja el método BeforeArrange? Mi forma de hacerlo es incorrecta ya que no funciona, pero no soy capaz de ver donde me falla la lógica
Espero haberme explicado
Un saludo.
Edit: Acabo de descubrir el por que no aumentaba el tamaño de la fuente al redimensionar el GridView. En el método Form_Resize coloqué un GridView.Clear() y a partir de ahí hace exactamente lo que quiero.
Muchas gracias.
Gracias por contestar, pero ando un poco perdido. He estado haciendo pruebas y no consigo lo que quiero. Pero para intentar ordenar las ideas una pregunta, ¿para que sirve el método BeforeArrange? ¿Cuando es llamado?
A ver si estoy haciendo las cosas mal y por eso no me sale. Me explico. Tengo el GridView dentro de un contenedor Panel. Una vez que se abre la ventana, llama a un método, por ejemplo divide(), que sabiendo la altura y la anchura del Panel lo divido por las celdas que quiero, 15x5 en mi caso. A continuación llamo a un método, rellena(), que es el encargado de mostrar el texto en cada celda. Lógicamente ahí ya tendré que decirle que altura de texto quiero, ¿no?, supongo que el código que me ha pasado tincho. Muy bien, cada vez que se redimensiona la ventana tengo un método Form_Resize, que llama a su vez al método que divide y rellena. ¿Donde encaja el método BeforeArrange? Mi forma de hacerlo es incorrecta ya que no funciona, pero no soy capaz de ver donde me falla la lógica
Espero haberme explicado
Un saludo.
Edit: Acabo de descubrir el por que no aumentaba el tamaño de la fuente al redimensionar el GridView. En el método Form_Resize coloqué un GridView.Clear() y a partir de ahí hace exactamente lo que quiero.
Muchas gracias.
última edición por Guizans el Martes, 04 Julio 2017, 22:35; editado 1 vez
Objetivo: Re: Aumentar El Tamaño De La Fuente (SOLUCIONADO)
Puedes mostrar el codigo con el cual solucionaste ?
Guizans escribió: [Ver mensaje]
Puedes mostrar el codigo con el cual solucionaste ?
Objetivo: Re: Aumentar El Tamaño De La Fuente
No hay problema. Tengo un método que crea la cuadrícula del GridView en relación a la altura y anchura del panel donde está incrustado el GridView:
Otro método que se encarga de rellenar la cuadrícula con los números:
Private Sub rellena()
Dim a, b As Byte = 0
Dim cont As Byte = 1
For a = 0 To 4
For b = 0 To 14
aumentar = Int(GridView2[a, b].Height / 11)
GridView2.Font.Grade = aumentar
GridView2[a, b].Text = Str(cont)
GridView2[a, b].Font.Bold = True
GridView2[a, b].Alignment = Align.Center
Inc cont
Next
Next
End
Y por último el método Resize que es llamado cuando el usuario redimensiona la ventana. Y es en ese método donde coloco el GridView.Clear()
Espero que te sirva.
Un saludo.
Citar:
No hay problema. Tengo un método que crea la cuadrícula del GridView en relación a la altura y anchura del panel donde está incrustado el GridView:
Otro método que se encarga de rellenar la cuadrícula con los números:
Private Sub rellena()
Dim a, b As Byte = 0
Dim cont As Byte = 1
For a = 0 To 4
For b = 0 To 14
aumentar = Int(GridView2[a, b].Height / 11)
GridView2.Font.Grade = aumentar
GridView2[a, b].Text = Str(cont)
GridView2[a, b].Font.Bold = True
GridView2[a, b].Alignment = Align.Center
Inc cont
Next
Next
End
Y por último el método Resize que es llamado cuando el usuario redimensiona la ventana. Y es en ese método donde coloco el GridView.Clear()
Espero que te sirva.
Un saludo.
Objetivo: Re: Aumentar El Tamaño De La Fuente
última edición por v3ctor el Jueves, 06 Julio 2017, 23:02; editado 1 vez
interesante solución, aun no he usado .grade
gracias por compartir tu solución
Saludos
gracias por compartir tu solución
Saludos
última edición por v3ctor el Jueves, 06 Julio 2017, 23:02; editado 1 vez
Objetivo: Re: Aumentar El Tamaño De La Fuente (SOLUCIONADO)
Si el método .Grade esta bastante interesante y ahorra bastante código.
Me alegro que lo hayas solucionado.
Saludos.
Guizans escribió: [Ver mensaje]
Si el método .Grade esta bastante interesante y ahorra bastante código.
Me alegro que lo hayas solucionado.
Saludos.
Objetivo: Re: Aumentar El Tamaño De La Fuente
Yo podría proponer este codigo, que tiene en cuenta eventual diferente ancho de las celdas.
Private GridView1 As GridView
Public Sub Form_Open()
Dim r, c As Short
With Me
.W = 520
.H = 390
End With
With GridView1 = New GridView(Me)
.X = 10
.Y = 10
.W = Me.W - 10
.H = Me.H - 10
.Rows.Count = 3
.Columns.Count = 6
End With
For r = 0 To GridView1.Rows.Max
GridView1.Rows[r].H = GridView1.H / GridView1.Rows.Count
Next
For r = 0 To GridView1.Rows.Max
For c = 0 To GridView1.Columns.Max
GridView1[r, c].Text = "Cella:" & String(c, " ") & CStr(r) & "-" & CStr(c)
Next
Next
End
Public Sub Form_Resize()
Dim r, c As Byte
GridView1.Resize(Me.W - (GridView1.X + 10), Me.H - (GridView1.Y + 10))
For c = 0 To GridView1.Columns.Max
GridView1.Columns[c].W = GridView1.W / GridView1.Columns.Count
Next
For r = 0 To GridView1.Rows.Max
GridView1.Rows[r].H = GridView1.H / GridView1.Rows.Count
Next
For r = 0 To GridView1.Rows.Max
For c = 0 To GridView1.Columns.Max
If GridView1.Columns[c].W > GridView1[r, c].Font.TextWidth(GridView1[r, c].Text) Then Inc GridView1[r, c].Font.Size
If GridView1.Columns[c].W < GridView1[r, c].Font.TextWidth(GridView1[r, c].Text) Then Dec GridView1[r, c].Font.Size
Next
Next
End
Public Sub Form_Open()
Dim r, c As Short
With Me
.W = 520
.H = 390
End With
With GridView1 = New GridView(Me)
.X = 10
.Y = 10
.W = Me.W - 10
.H = Me.H - 10
.Rows.Count = 3
.Columns.Count = 6
End With
For r = 0 To GridView1.Rows.Max
GridView1.Rows[r].H = GridView1.H / GridView1.Rows.Count
Next
For r = 0 To GridView1.Rows.Max
For c = 0 To GridView1.Columns.Max
GridView1[r, c].Text = "Cella:" & String(c, " ") & CStr(r) & "-" & CStr(c)
Next
Next
End
Public Sub Form_Resize()
Dim r, c As Byte
GridView1.Resize(Me.W - (GridView1.X + 10), Me.H - (GridView1.Y + 10))
For c = 0 To GridView1.Columns.Max
GridView1.Columns[c].W = GridView1.W / GridView1.Columns.Count
Next
For r = 0 To GridView1.Rows.Max
GridView1.Rows[r].H = GridView1.H / GridView1.Rows.Count
Next
For r = 0 To GridView1.Rows.Max
For c = 0 To GridView1.Columns.Max
If GridView1.Columns[c].W > GridView1[r, c].Font.TextWidth(GridView1[r, c].Text) Then Inc GridView1[r, c].Font.Size
If GridView1.Columns[c].W < GridView1[r, c].Font.TextWidth(GridView1[r, c].Text) Then Dec GridView1[r, c].Font.Size
Next
Next
End
Página 1 de 1
No puede crear mensajesNo puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 0.4855s (PHP: -74% SQL: 174%)
Consultas SQL: 47 - Debug off - GZIP Activado