|
Página 1 de 2
|
ScrollArea Barra Vertical
Autor |
Mensaje |
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
ScrollArea Barra Vertical
Hola,
Estoy algo perdido con este control. Os cuento.
Tengo un TabPanel que tiene un DrawArea con una gráfica de gb.Chart pero las leyendas se han pasado de la zona vertical. Entonce me he puesto ha buscar otro control y he encontrado ScrollArea que me parece que es para este problema. Cambio básicamente el nombre y todo funciona igual, después en las propiedades de ScrollArea le pongo ScrollBar = Vertical pero no sale ninguna barra vertical y ahí me he quedao.
Por favor un empujoncito.
Muchas gracias.
|
#1 Miercoles, 09 Octobre 2019, 19:50 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: ScrollArea Barra Vertical
Tienes que usar el ScrollArea exactamente como el DrawingArea, excepto que:
1) Tienes que definir con el Metodo " .ResizeContents( )" el área de los contenidos que serán dibujados por el ScrollArea.
2) Debes tener en cuenta los valores de las Propiedades .ScrollX y .ScrollY al dibujar dentro del gestor del evento _Draw( ) (al menos para las cosas que deben moverse con las barras de desplazamiento). Cuando el ScrollArea dibuja, este Objeto tiene que usar las propiedades .ScrollX y .ScrollY para saber cuánto tiene que trasladar lo que dibujas dentro del gestor del evento _Draw(). Es decir, con la ayuda de las Propiedades .ScrollX y .ScrollY tienes que decidir en qué coordenadas dentro de tu dibujo empiezas a dibujar en el ScrollArea.
Exemplum:
Public Sub Form_Open()
With ScrollArea1
.ResizeContents(ScrollArea1.W, ScrollArea1.H + 200)
.ScrollBar = Scroll.Vertical
.Background = Color.Lighter(Color.Yellow)
End With
End
Public Sub ScrollArea1_Draw()
With Paint
.Brush = Paint.Color(Color.Blue)
.LineWidth = 3.5
.Ellipse(50, ScrollArea1.ScrollY, 200, 200) ' o si prefieres: (...., - ScrollArea1.ScrollY, ......)
.Stroke
.End
End With
End
última edición por vuott el Jueves, 10 Octobre 2019, 00:01; editado 4 veces
|
#2 Miercoles, 09 Octobre 2019, 23:49 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: ScrollArea Barra Vertical
...le pongo ScrollBar = Vertical pero no sale ninguna barra vertical y ahí me he quedao...
Tenes que ponerlo así:
Si te fijas bien vas a ver que la propiedad .ScrollBar es un entero.
Nota: Gambafeliz ya llevas tiempo aquí en el foro, por favor usa el marcado de código ( C#) para que se pueda leer de forma mas agradable.
Saludos.
|
#3 Jueves, 10 Octobre 2019, 09:14 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: ScrollArea Barra Vertical
...le pongo ScrollBar = Vertical pero no sale ninguna barra vertical y ahí me he quedao...
Tenes que ponerlo así:
Si te fijas bien vas a ver que la propiedad .ScrollBar es un entero.
Nota: Gambafeliz ya llevas tiempo aquí en el foro, por favor usa el marcado de código ( C#) para que se pueda leer de forma mas agradable.
Saludos.
No se muy bien que es lo de C# en el foro pero te prometo que lo voy a hacer y buscar. Lo que me comentas pues yo me refería que lo he puesto en la parte gráfica de propiedades y no sale la barra de scroll pero ahora tras ponerlo por código ya sale siempre.
|
#4 Jueves, 10 Octobre 2019, 10:26 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: ScrollArea Barra Vertical
Muchisimas gracias, vuott.
Pero aunque me has ayudado mucho mucho sigo muy perdido. Te cuento.
1. Ya he conseguido gracias a ambos poner la barra de scroll
2. Pero la intento manejar pero me sale todo un churro. Me baja el gráfico y la barra en fin un desastre.
3. Una cosa que me vuelve loco y de verdad necesito que me ayuden es:
¿Como puedo saber el tamaño del gráfico para después poderlo manejar con el scroll?, yo antes de que el gráfico se pasara de Height tenia el gráfico fijo con unas dimensiones perfectas para que cupiera dentro del TabPanel pero ahora como es más grande, entiendo por sentido común que tengo que ponerlo mas grande y después manejarlo con el scroll ese nuevo tamaño pero para ello tengo que saber el tamaño que se va a generar y este para mi ahora mismo es un misterio.
Por favor, necesito mas ayuda no se si lo voy a conseguir, me parece muy difícil entender esta tarea.
Gracias de verdad por la ayuda.
|
#5 Jueves, 10 Octobre 2019, 10:32 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: ScrollArea Barra Vertical
Tienes que usar el ScrollArea exactamente como el DrawingArea, excepto que:
Os adjunto un ejemplo de cual es mi caso, por si me podéis ayudar mejor. Gracias.
Descripción: |
|
Descargar |
Nombre del archivo: |
scrollAreaTabPanel-0.0.1.tar.gz |
Tamaño: |
12.07 KB |
Descargado: |
27 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
scrollAreaTabPanel-0.0.1.tar.gz |
Tamaño: |
12.07 KB |
Descargado: |
27 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
scrollAreaTabPanel-0.0.1.tar.gz |
Tamaño: |
12.07 KB |
Descargado: |
27 veces |
|
#6 Jueves, 10 Octobre 2019, 17:15 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: ScrollArea Barra Vertical
La grafica de gb.chart debe ser "parte" (es decir un dibujo) del SCrollArea.
|
#7 Jueves, 10 Octobre 2019, 19:54 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: ScrollArea Barra Vertical
La grafica de gb.chart debe ser "parte" (es decir un dibujo) del SCrollArea.
Gracias vuott y perdón, pero no te entiendo. Lo siento.
Te envío otra nueva versión donde he conseguido algo mas pero sigue sin funcionar bien. Lo paso por si, alguien ve la luz.
Gracias
Nota: No se si has visto el código pero quiero decirte que el gb.Chart esta dibujado dentro de ScrollArea1
Descripción: |
|
Descargar |
Nombre del archivo: |
scrollAreaTabPanel-0.0.3.tar.gz |
Tamaño: |
12.14 KB |
Descargado: |
19 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
scrollAreaTabPanel-0.0.3.tar.gz |
Tamaño: |
12.14 KB |
Descargado: |
19 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
scrollAreaTabPanel-0.0.3.tar.gz |
Tamaño: |
12.14 KB |
Descargado: |
19 veces |
última edición por gambafeliz el Jueves, 10 Octobre 2019, 21:03; editado 3 veces
|
#8 Jueves, 10 Octobre 2019, 20:37 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: ScrollArea Barra Vertical
Aquì tu codigo un po' modificado.
Tienes que activar el Componente grafico gb.gui.qt y cambiar la constante .Type = ChartType.PieRings con otra (por ejemplo con: .Columns) .
Private $goGrafico As New Chart
Private goEstadistica As New Estadistica
Private im As Image
Public Sub Form_Open()
Dim sWhere As String
Dim sSQL As String
Dim fMayor As Float
Dim aPorcentaje As Float[] = [20, 30, 40, 50, 10, 14, 12, 12, 12, 16, 29, 23, 30, 20, 30, 40, 50, 10, 14, 12, 12, 12, 16, 29, 23, 30, 20, 30, 40, 50, 10, 14, 12, 12, 12, 16, 29, 23, 30, 20, 30, 40, 50, 10, 14, 12, 12, 12, 16, 29, 23, 30, 20, 30, 40, 50, 10, 14, 12, 12, 12, 16, 29, 23, 30, 20, 30, 40, 50, 10, 14, 12, 12, 12, 16, 29, 23, 30]
Dim n As Integer
Dim aCategorias As String[] = ["tomate", "patatas", "leche", "a", "b", "c", "d", "agua", "queso", "miel", "pasteles", "lechuga", "pimientos", "tomate", "patatas", "leche", "a", "b", "c", "d", "agua", "queso", "miel", "pasteles", "lechuga", "pimientos", "tomate", "patatas", "leche", "a", "b", "c", "d", "agua", "queso", "miel", "pasteles", "lechuga", "pimientos", "tomate", "patatas", "leche", "a", "b", "c", "d", "agua", "queso", "miel", "pasteles", "lechuga", "pimientos", "tomate", "patatas", "leche", "a", "b", "c", "d", "agua", "queso", "miel", "pasteles", "lechuga", "pimientos", "tomate", "patatas", "leche", "a", "b", "c", "d", "agua", "queso", "miel", "pasteles", "lechuga", "pimientos"]
goEstadistica.Estadistica($goGrafico, ScrollArea1, aPorcentaje, aCategorias, "Gastos", "2019")
ScrollArea1.ResizeContents(ScrollArea1.W, ScrollArea1.H + 200)
ScrollArea1.ScrollBar = Scroll.Vertical
im = New Image(ScrollArea1.W, ScrollArea1.H)
Paint.Begin(im) ' Establece un objeto "Image"
$goGrafico.Draw() ' Dibuja la gráfica en el objeto "Image"
Paint.End()
End
Public Sub ScrollArea1_Draw()
' Dibuja el contenido del objeto "Image" en el ScrollArea:
Paint.DrawImage(im, ScrollArea1.ScrollX, -ScrollArea1.ScrollY)
End
última edición por vuott el Viernes, 11 Octobre 2019, 02:00; editado 4 veces
|
#9 Viernes, 11 Octobre 2019, 01:39 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: ScrollArea Barra Vertical
Aquì tu codigo un po' modificado.
Tienes que activar el Componente grafico gb.gui.qt y cambiar la constante .Type = ChartType.PieRings con otra (por ejemplo con: .Columns) .
vuott valoro muchísimo tu esfuerzo mil gracias, de verdad.
Pero cambiar la gráfica PieRings por Columns no me vale. No te lo he dicho pero mi variable "aPorcentaje" aunque en el ejemplo no se ve, la suma de esta variable da 100% lo que te intento explicar es que, la gráfica perfecta es PieRings, en el caso de Columns estos datos no se verían correctamente bien ya que serian muchas columnas y sería poco explicativo.
Tiene que ser con PieRings.
Ahora gracias a tu código se me ocurre una corrección a tu código que voy a probar.
Una pregunta, ¿has visto la versión 3 de mi código que he puesto?
vuott mil gracias y seguimos estudiando el problema, ya que todavía no hemos dado con la solución.
Saludos.
Nota:
Tu código último me da un error en:
$goGrafico.Draw() ' Dibuja la gráfica en el objeto "Image"
Me dice que no existe la propiedad Background en la clase Image
Descripción: |
Nota: Esta versión si arrastras la barra hacia abajo y después la arrastras hacia arriba va a funcionar bien. El problema es que la barra siempre acompaña al Chart. Esta así funcionando. Os lo dejo por si alguien ve la luz. |
Descargar |
Nombre del archivo: |
scrollAreaTabPanel-0.0.4.tar.gz |
Tamaño: |
12.4 KB |
Descargado: |
26 veces |
Descripción: |
Nota: Esta versión si arrastras la barra hacia abajo y después la arrastras hacia arriba va a funcionar bien. El problema es que la barra siempre acompaña al Chart. Esta así funcionando. Os lo dejo por si alguien ve la luz. |
Descargar |
Nombre del archivo: |
scrollAreaTabPanel-0.0.4.tar.gz |
Tamaño: |
12.4 KB |
Descargado: |
26 veces |
Descripción: |
Nota: Esta versión si arrastras la barra hacia abajo y después la arrastras hacia arriba va a funcionar bien. El problema es que la barra siempre acompaña al Chart. Esta así funcionando. Os lo dejo por si alguien ve la luz. |
Descargar |
Nombre del archivo: |
scrollAreaTabPanel-0.0.4.tar.gz |
Tamaño: |
12.4 KB |
Descargado: |
26 veces |
última edición por gambafeliz el Viernes, 11 Octobre 2019, 07:46; editado 3 veces
|
#10 Viernes, 11 Octobre 2019, 06:49 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado 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
|
|
|
|
|