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:
  • 2 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5

[SOLUCIONADO]  ¿Alguien sabe cómo insertar toolbuttons en la barra del título de la ventana?
#1

Tengo un programita en el que se "desperdicia" una línea entera con un toolbutton solamente (aunque pudieran ser tres o cuatro). Me gustaría eliminar esa linea y una opción sería hacer algo semejante a ésto:

[Imagen: lfhfbLi.png]

¿Alguien sabe cómo se podría hacer con Gambas?

Saludos

No podemos regresar
    ¡Gracias!
#2

Intente hacerlo hace tiempo pero no encontré la manera creo que esas características GTK3 no están disponibles en gambas porque en realidad es QT "simulando" GTK3.
Lo que podes hacer es quitarle el borde al formulario y poner un panel con los iconos, pero tenes que agregar de alguna manera los eventos del raton para mover la ventana o para minimizar.
[Imagen: Cj3tg6D.png]


Archivos adjuntos
.gz simulate-gtk3-window-0.0.1.tar.gz Tamaño: 11.88 KB  Descargas: 4

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

buena tecnica!

"Es mejor saber todo de muy poco que muy poco de todo" - anonimo
    ¡Gracias!
#4

(23-08-2022, 14:13)tincho escribió:  quitarle el borde al formulario
Hay pero el problema que Confused no es posible mover la ventana con el ratón.

"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
    ¡Gracias!
#5

(23-08-2022, 15:32)vuott escribió:  Hay pero el problema que Confused no es posible mover la ventana con el ratón.

Correcto, por eso decía antes que hay que agregar los eventos del ratón par amover la ventana. pero seguramente con los eventos en el panel de iconos _MouseDown() activar una variable "bMover = True" y luego con _MouseMove() mover el formulario igual que el puntero del ratón.

1 Saludo.
    ¡Gracias!
#6

(23-08-2022, 17:55)tincho escribió:  hay que agregar los eventos del ratón par amover la ventana
Uhmmm... puedes agregar este código a tu ejemplo, que adjuntaste aquí.
Para mover la ventana del Formulario con el ratón en tu ejemplo, debes hacer clic precisamente en la parte del Formulario accesible/visible.
GAMBAS
  1.  
  2. Public Sub Form_MouseDown()
  3.  
  4.   x = Mouse.X
  5.   y = Mouse.Y
  6.  
  7.  
  8. Public Sub Form_MouseMove()
  9.  
  10.   Me.Move(Mouse.ScreenX - x, Mouse.ScreenY - y)
  11.  



"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
    ¡Gracias!
#7

(23-08-2022, 20:07)vuott escribió:  Uhmmm... puedes agregar este código a tu ejemplo, que adjuntaste aquí.
Para mover la ventana del Formulario con el ratón en tu ejemplo, debes hacer clic precisamente en la parte del Formulario accesible/visible.

ok, funciona pero... ¿como hago para que funcione haciendo click en cualquier parte del form?
Cambie un poco el código para que sea mas fluido el movimiento
[Imagen: EiYbAyv.gif]
GAMBAS
  1.  
  2. Public Sub Form_MouseMove()
  3.  
  4.   If bMove Then
  5.     Me.Move(Mouse.ScreenX - x, Mouse.ScreenY - y)
  6.   Else
  7.     Stop Event
  8.  
  9.  
  10. Public Sub Form_MouseUp()
  11.  
  12.   bMove = False
  13.  
  14.  
  15. Public Sub Form_MouseDown()
  16.  
  17.   x = Mouse.X
  18.   y = Mouse.Y
  19.   bMove = True
  20.  



ok, ya logre que funcione con click en cualquier parte
GAMBAS
  1.  
  2. Public Sub X_MouseMove()
  3.  
  4.   If bMove Then
  5.     FMain.Move(Mouse.ScreenX - x, Mouse.ScreenY - y)
  6.   Else
  7.     Stop Event
  8.  
  9.  
  10. Public Sub X_MouseDown()
  11.  
  12.   x = Mouse.X
  13.   y = Mouse.Y
  14.   bMove = True
  15.  
  16.  
  17. Public Sub X_MouseUp()
  18.  
  19.   bMove = False
  20.  




Archivos adjuntos
.gz simulate-gtk3-window-0.0.2.tar.gz Tamaño: 14.25 KB  Descargas: 2

1 Saludo.
    ¡Gracias!
#8

(23-08-2022, 20:36)tincho escribió:  ¿como hago para que funcione haciendo click en cualquier parte del form?

pero se supone que los controles dentro del Form reciben click para otra cosa, no para mover su Form Parent...

"Es mejor saber todo de muy poco que muy poco de todo" - anonimo
    ¡Gracias!
#9

Me imaginé este Confused  otro código (para mover el Formulario, hay que actuar con el ratón en la parte superior, como siempre):
GAMBAS
  1. Private tb As ToolButton
  2.  
  3. Public Sub _new()
  4.   
  5.   With wn = New Window As "Wndw"
  6.     .W = Me.W
  7.     .H = 40
  8.     .X = (Screen.AvailableWidth / 2) - (.W / 2)
  9.     .Y = (Screen.AvailableHeight / 4) - (.H / 2)
  10.     .Border = Border.None
  11.     .Background = &D9D9D9
  12.     .Show
  13.   With Me
  14.     .X = wn.X
  15.     .Y = wn.Y + wn.H
  16.     .Border = Border.None
  17.     .Margin = True
  18.     .Padding = 5
  19.     .Arrangement = Arrange.Fill
  20.   
  21.   For b As Byte = 1 To 4
  22.     With tb = New ToolButton(wn) As "Toolb"
  23.       .W = wn.W * 0.1
  24.       .X = .W + (b * 60)
  25.       .Y = wn.H * 0.15
  26.       .H = wn.H * 0.8
  27.       .Border = Border.Plain
  28.       .Background = Color.Yellow
  29.       .Text = CStr(b)
  30.     End With
  31.   Next
  32.  
  33.  
  34. Public Sub Form_Open()
  35.  
  36.   ta = New TextArea(Me) As "TextA"
  37.   w = New Watcher(wn) As "Osserva"
  38.   
  39.  
  40. Public Sub Toolb_Click()
  41.   
  42.   ta.Text &= Last.Text
  43.  
  44.  
  45. Public Sub Wndw_MouseDown()
  46.  
  47.  x = Mouse.X 
  48.  y = Mouse.Y 
  49.  
  50.  
  51. Public Sub Wndw_MouseMove()
  52.  
  53.   wn.Move(Mouse.ScreenX - x, Mouse.ScreenY - y)
  54.  
  55.  
  56. Public Sub Osserva_Move()  ' Cuando se mueve el objeto gráfico "Window" con el ratón...
  57.  
  58. ' ...también se mueve el Form:
  59.   Me.Move(wn.X, wn.Y + wn.H)
  60.   



"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
[-] Los siguientes 1 usuarios dice gracias a vuott por este post:
  • tincho
    ¡Gracias!
#10

Probé el código, funciona perfecto.
Movés la ventana, y con el observador ves este evento y luego movés el formulario.
Este método esta muy interesante, supongo que los controles desplegables como los combobox usaran algo similar.
Tambien esta bueno para hacer paletas de herramientas flotantes como Gimp.

[Imagen: o3kjequ.gif]

1 Saludo.
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)