|
Página 1 de 1
|
Aumentar El Tamaño De La Fuente
Autor |
Mensaje |
Guizans
Aprendiz
Registrado: Febrero 2012
Mensajes: 99
Edad: 45
|
Aumentar El Tamaño De La Fuente
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.
|
#1 Martes, 04 Julio 2017, 13:41 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
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
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
|
#2 Martes, 04 Julio 2017, 15:41 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Aumentar El Tamaño De La Fuente
...una ventana en la cual hay un GridView...cada vez que se redimensione...el tamaño de la fuente aumente o disminuya en proporción.
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.
|
#3 Martes, 04 Julio 2017, 17:05 |
|
|
Guizans
Aprendiz
Registrado: Febrero 2012
Mensajes: 99
Edad: 45
|
Re: Aumentar El Tamaño De La Fuente (SOLUCIONADO)
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.
última edición por Guizans el Martes, 04 Julio 2017, 22:35; editado 1 vez
|
#4 Martes, 04 Julio 2017, 22:09 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Aumentar El Tamaño De La Fuente (SOLUCIONADO)
hace exactamente lo que quiero
Puedes mostrar el codigo con el cual solucionaste ?
|
#5 Martes, 04 Julio 2017, 23:08 |
|
|
Guizans
Aprendiz
Registrado: Febrero 2012
Mensajes: 99
Edad: 45
|
Re: Aumentar El Tamaño De La Fuente
Citar:
Puedes mostrar el codigo con el cual solucionaste ?
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:
Private Sub redimensionar_tabla()
GridView2.Rows.Count = 5
GridView2.Columns.Count = 15
GridView2.Columns.Width = (Panel1.Width / 15)
GridView2.Rows.Height = (Panel1.Height / 5)
End
Otro método que se encarga de rellenar la cuadrícula con los números:
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()
Public Sub Form_Resize()
GridView2.Clear()
redimensionar_tabla()
rellena()
End
Espero que te sirva.
Un saludo.
|
#6 Jueves, 06 Julio 2017, 22:47 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Re: Aumentar El Tamaño De La Fuente
interesante solución, aun no he usado .grade
gracias por compartir tu solución
Saludos
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
última edición por v3ctor el Jueves, 06 Julio 2017, 23:02; editado 1 vez
|
#7 Jueves, 06 Julio 2017, 23:02 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Aumentar El Tamaño De La Fuente
No hay problema.
Muchas gracias.
Saludos.
|
#8 Viernes, 07 Julio 2017, 10:56 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Aumentar El Tamaño De La Fuente (SOLUCIONADO)
... supongo que el código que me ha pasado tincho...
Si el método .Grade esta bastante interesante y ahorra bastante código.
Me alegro que lo hayas solucionado.
Saludos.
|
#9 Domingo, 09 Julio 2017, 15:15 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
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
|
#10 Domingo, 09 Julio 2017, 17:17 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No 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
|
|
|
|
|