Páginas (2): 1 2   
Shordi   23-08-2022, 13:29
#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
Última modificación: 27-08-2022, 21:04 por Shordi.

No podemos regresar
tincho   23-08-2022, 14:13
#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.
tercoide   23-08-2022, 15:06
#3
buena tecnica!

"Es mejor saber todo de muy poco que muy poco de todo" - anonimo
vuott   23-08-2022, 15:32
#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, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
tincho   23-08-2022, 17:55
#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.
vuott   23-08-2022, 20:07
#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.
Código:
Private x As Short
Private y As Short

Public Sub Form_MouseDown()

  x = Mouse.X
  y = Mouse.Y

End

Public Sub Form_MouseMove()

  Me.Move(Mouse.ScreenX - x, Mouse.ScreenY - y)

End

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
tincho   23-08-2022, 20:36
#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]
Código:
Private x As Short
Private y As Short
Private bMove As Boolean = False

Public Sub Form_MouseMove()

  If bMove Then
    Me.Move(Mouse.ScreenX - x, Mouse.ScreenY - y)
  Else
    Stop Event
  Endif

End

Public Sub Form_MouseUp()

  bMove = False

End

Public Sub Form_MouseDown()

  x = Mouse.X
  y = Mouse.Y
  bMove = True

End

ok, ya logre que funcione con click en cualquier parte
Código:
Private x As Short
Private y As Short
Private bMove As Boolean = False

Public Sub X_MouseMove()

  If bMove Then
    FMain.Move(Mouse.ScreenX - x, Mouse.ScreenY - y)
  Else
    Stop Event
  Endif

End

Public Sub X_MouseDown()

  x = Mouse.X
  y = Mouse.Y
  bMove = True

End

Public Sub X_MouseUp()

  bMove = False

End
Archivos adjuntos
.gz
simulate-gtk3-window-0.0.2.tar.gz (Tamaño: 14.25 KB Descargas: 2)
Última modificación: 23-08-2022, 21:20 por tincho.

1 Saludo.
tercoide   23-08-2022, 22:25
#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
vuott   24-08-2022, 00:06
#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):
Código:
Private x As Short
Private y As Short
Private wn As Window
Private w As Watcher
Private tb As ToolButton
Private ta As TextArea

Public Sub _new()
  
  With wn = New Window As "Wndw"
    .W = Me.W
    .H = 40
    .X = (Screen.AvailableWidth / 2) - (.W / 2)
    .Y = (Screen.AvailableHeight / 4) - (.H / 2)
    .Border = Border.None
    .Background = &D9D9D9
    .Show
  End With
  With Me
    .X = wn.X
    .Y = wn.Y + wn.H
    .Border = Border.None
    .Margin = True
    .Padding = 5
    .Arrangement = Arrange.Fill
  End With
  
  For b As Byte = 1 To 4
    With tb = New ToolButton(wn) As "Toolb"
      .W = wn.W * 0.1
      .X = .W + (b * 60)
      .Y = wn.H * 0.15
      .H = wn.H * 0.8
      .Border = Border.Plain
      .Background = Color.Yellow
      .Text = CStr(b)
    End With
  Next

End

Public Sub Form_Open()
 
  ta = New TextArea(Me) As "TextA"
  w = New Watcher(wn) As "Osserva"
  
End

Public Sub Toolb_Click()
  
  ta.Text &= Last.Text

End

Public Sub Wndw_MouseDown()

 x = Mouse.X 
 y = Mouse.Y 
 
End

Public Sub Wndw_MouseMove()

  wn.Move(Mouse.ScreenX - x, Mouse.ScreenY - y)

End

Public Sub Osserva_Move()  ' Cuando se mueve el objeto gráfico "Window" con el ratón...

' ...también se mueve el Form:
  Me.Move(wn.X, wn.Y + wn.H)
  
End
Última modificación: 24-08-2022, 00:12 por vuott.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
tincho   24-08-2022, 00:46
#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]
Última modificación: 24-08-2022, 00:49 por tincho.

1 Saludo.
Páginas (2): 1 2   
  
Usuarios navegando en este tema: 3 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.