Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Presentando PicPanel y PicToolButton
#11

(06-03-2023, 21:08)Shordi escribió:  Hecho. Ahora se comporta como un panel normal pero respetando el Radius de las esquinas y demás.
Me gustaría que lo probaseis porque el cálculo de la ubicación de los contenidos al Radius de las esquinas y demás lo he hecho bastante a ojímetro... por lo que no sé qué puede ocurrir en otras máquinas que no sean la mía.

Saludos

A mi no me ajusta bien y no tiene en cuenta el tamaño del borde. Pruebe esto en RoundPanel_Draw():

GAMBAS
  1. Dim fMargin as Float
  2.  
  3.    'Content Adjust
  4.    'iMargin = Int($iRadius / 3)
  5.    fMargin = Hyp($iRadius, $iRadius) / 4
  6.    iMargin = Round(fMargin, 0) + Me.Padding + IIf($bBorder, $hBorder.Width, 0)



Una idea interesante incluir un panel interno para gestionar los controles.
Saludos, Harpo.

(06-03-2023, 22:23)tincho escribió:  Felicitaciones, un gran trabajo.
No se si se podra hacer pero ¿Seria posible decirle al panel que esquinas se redondearan?
En el ejemplo de mas abajo agregue un panel a modo de barra de botones, mas oscura, y redondeo ambos panels pero quedaria mas parecido a gtk3 si la "botonera" redondea solo las esquinas superiores y por el contrario el panel de abajo solo las inferiores.

[Imagen: 6dunzXZ.png]

Se puede. Jugando con Border se pueden definir Radius distintos.

[Imagen: 2eKgjZE.png]

Si el maestro Shordi se anima lo incluimos en RounPanel Big Grin
[-] Los siguientes 3 usuarios dicen gracias a Harpo por este post:
  • portaro, tercoide, tincho
    ¡Gracias!
#12

Pues no se me había ocurrido. Lo investigo.

Saludos

No podemos regresar
[-] Los siguientes 1 usuarios dice gracias a Shordi por este post:
  • portaro
    ¡Gracias!
#13

(07-03-2023, 13:20)Harpo escribió:  Se puede. Jugando con Border se pueden definir Radius distintos.

Que velocidad de respuesta ! 
(07-03-2023, 13:20)Harpo escribió:  Si el maestro Shordi se anima lo incluimos en RounPanel Big Grin

Seguro que si.

1 Saludo.
[-] Los siguientes 1 usuarios dice gracias a tincho por este post:
  • portaro
    ¡Gracias!
#14

Vale, dicho y hecho. Ahora PicPanel puede tener sus bordes redondeados por separado además de la imagen de fondo. Lo he hecho con la clase paint todo, sin utilizar la clase Border, sólo Paint.

El formulario de Test es así:
[Imagen: ycyw8Jl.png]

Sustituye al antiguo PicPanel y deja obsoleto el RoundPanel. Por eso también he mezclado los iconos de ambos y se que quedan así:

[Imagen: VTlAOj2.png]

Ha sido divertido. Nunca  había usado Paint y realmente es divertido... aunque complejo que te cagas.

No lo adjunto a este mensaje porque le he incrustado un archivo de imagen para la demo y el foro no admite archivos de más de una mega. Lo he puesto en la Granja de Gams y  en gitlab https://gitlab.com/shordi/PicPanel y será ahí donde tendréis las futuras actualizaciones si es que las hay.

Saludos

No podemos regresar
[-] Los siguientes 2 usuarios dicen gracias a Shordi por este post:
  • portaro, tincho
    ¡Gracias!
#15

(08-03-2023, 14:23)Shordi escribió:  aunque complejo que te cagas.

Y eso que no te metiste con OpenGL Big Grin
(08-03-2023, 14:23)Shordi escribió:  No lo adjunto a este mensaje porque le he incrustado un archivo de imagen para la demo y el foro no admite archivos de más de una mega. Lo he puesto en la Granja de Gams y  en gitlab https://gitlab.com/shordi/PicPanel y será ahí donde tendréis las futuras actualizaciones si es que las hay.

No seria mas prolijo usar algo como:
GAMBAS


Como la variable global ya es una matriz
GAMBAS
  1. Private $Radius As Integer[] = [0, 0, 0, 0]


Tal vez seria mejor tener un método de escritura y uno de lectura y no 4 + 4.

Bueno, en un rato lo hice yo. Hice las modificaciones, reduje el tamaño del .jpg para que ocupe menos lo adjunto por acá.

Gracias por compartir.


Archivos adjuntos
.gz PicPanel-master-0.1.1.tar.gz Tamaño: 16.26 KB  Descargas: 1

1 Saludo.
[-] Los siguientes 2 usuarios dicen gracias a tincho por este post:
  • portaro, Shordi
    ¡Gracias!
#16

Cita:Tal vez seria mejor tener un método de escritura y uno de lectura y no 4 + 4.
 
Esa fue mi primera aproximación al asunto, pero luego decidí seguir la filosofía que muestra la clase Border.
Todo en una sola propiedad tipo array puede ser más simple en tiempo de diseño, pero aporta problemas nemotécnicos, creo, al momento de usar la clase:  ¿Topleft, TopRight, Bottomleft, BottomRight  (es decir línea de arriba -> línea de abajo) o Topleft, TopRight, BottomRight, BottomLeft (es decir esquinas en sentido horario)? Cuando tengas que redondear una de las esquinas ¿Es el tercer parámetro o el segundo? A mí por lo menos, dentro de unos meses me costaría tener que ir al código a recordarlo. Dando nombre a cada Radius, es el propio IDE el que te dice cuál tienes que retocar.

Creo que lo dejaré con las cuatro, que son cinco, propiedades.

Muchas gracias por tu interés en el tema.

Saludos

No podemos regresar
[-] Los siguientes 1 usuarios dice gracias a Shordi por este post:
  • portaro
    ¡Gracias!
#17

Ahora voy a actualizar el PicToolButton... que pasará a llamarse PicButton, creo.

Saludos

No podemos regresar
[-] Los siguientes 1 usuarios dice gracias a Shordi por este post:
  • portaro
    ¡Gracias!
#18

(08-03-2023, 19:14)Shordi escribió:  A mí por lo menos, dentro de unos meses me costaría tener que ir al código a recordarlo

No es complicado en absoluto, son los cuadrantes si arrancas desde cero grados y aumentas los grados tienes el cuadrante 0 (seria el uno pero las listas en gambas ... ) luego el 1  el 2 y finalmente el 3
[Imagen: sPhtuiR.png]
Q1 = Radius[0]
Q2 = Radius[1]
Q3 = Radius[2]
Q4 = Radius[3]

Ademas Paint dibuja todo otra vez aunque solo cambies una esquina Paint borrara todo y volverá a dibujarlo.

1 Saludo.
[-] Los siguientes 2 usuarios dicen gracias a tincho por este post:
  • portaro, Shordi
    ¡Gracias!
#19

Cita:No es complicado en absoluto
Sobreestimas mi memoria de pez, compañero... Confused Confused

Saludos

No podemos regresar
[-] Los siguientes 1 usuarios dice gracias a Shordi por este post:
  • portaro
    ¡Gracias!
#20

(08-03-2023, 21:25)Shordi escribió:  Sobreestimas mi memoria de pez, compañero... Confused Confused

En electricidad y magnetismo teníamos una regla mnemotécnica llamada "regla de la mano derecha"
[Imagen: omXkkIb.png]
https://es.wikipedia.org/wiki/Regla_de_la_mano_derecha

1 Saludo.
[-] Los siguientes 1 usuarios dice gracias a tincho por este post:
  • portaro
    ¡Gracias!


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)