Atajo de teclado en ToolButton - guizans - 23-01-2024
Para que un botón responda a un atajo de teclado hay que añadir el & delante de la letra que se usará como atajo. ¿Pero en los ToolButton como se hace? ya que estos, o por lo menos en mi caso, no hay texto. ¿Hay alguna forma? Le he estado dando vueltas y no he encontrado nada.
Un saludo.
RE: Atajo de teclado en ToolButton - cogier - 24-01-2024
Puedes añadir texto tan pequeño que no se vea. Prueba con el código siguiente. Utilice [Alt]+1, [Alt]+2 y [Alt]+3 para hacer 'clic' en los botones.
Código: ' Gambas class file
hToolButton As ToolButton
Label1 As Label
Public Sub TButtons_Click()
Label1.Text = Last.Name
End
Public Sub Form_Open()
Dim HBox1 As HBox
Dim Spring1 As Spring
Dim iLoop As Integer
Dim sName As String[] = ["ToolButton 1", "ToolButton 2", "ToolButton 3"]
Dim sText As String[] = ["&1", "&2", "&3"]
Dim sPicture As String[] = ["icon:/96/administrator", "icon:/96/alarm", "icon:/96/anchor"]
With Me
.H = 150
.W = 450
.Arrangement = Arrange.Vertical
.Padding = 5
End With
HBox1 = New Hbox(Me)
HBox1.H = 96
HBox1.W = 100
For iloop = 0 To 2
With hToolButton = New ToolButton(HBox1) As "TButtons"
.W = 96
.H = 96
.Border = True
.Text = sText[iLoop]
.Name = sName[iLoop]
.Font.Size = 1
.Picture = Picture[sPicture[iLoop]]
End With
If iLoop < 2 Then Spring1 = New Spring(hBox1)
Next
Spring1 = New Spring(Me)
With Label1 = New Label(Me) As "Label1"
.H = 36
.W = 100
.Font.Bold = True
.Alignment = Align.Center
End With
End
RE: Atajo de teclado en ToolButton - guizans - 24-01-2024
Gracias Cogier.
No está mal tu solución, pero me parece un poco zarrapastosa, ¿no crres?
He estado pensando en crear un menú con la propiedad visble en false y ahí si que se puede añadir los atajos de teclado. Pero me sigue pareciendo poco elegante. Pero supongo que no me queda otra por optar por una de las dos.
Un saludo.
RE: Atajo de teclado en ToolButton - cogier - 25-01-2024
Cita:No está mal tu solución, pero me parece un poco zarrapastosa, ¿no crres?
¡Estoy destrozado! Me he levantado y lo he vuelto a intentar.
Código: ' Gambas class file
hToolButton As ToolButton
Label1 As Label
Timer1 As Timer
Public Sub Form_KeyRelease()
If Key.Code = Key["1"] And Key.Alt Then TButtons_Click("1")
If Key.Code = Key["2"] And Key.Alt Then TButtons_Click("2")
If Key.Code = Key["3"] And Key.Alt Then TButtons_Click("3")
End
Public Sub TButtons_Click(Optional sNo As String)
Dim sText As String = "ToolButton "
If sNo <> "" Then
Label1.Text = sText & sNo
Else
Label1.Text = Last.Name
Endif
End
Public Sub Timer1_Timer()
Me.SetFocus
End
Public Sub Form_Open()
Dim HBox1 As HBox
Dim Spring1 As Spring
Dim iLoop As Integer
Dim sName As String[] = ["ToolButton 1", "ToolButton 2", "ToolButton 3"]
Dim sPicture As String[] = ["icon:/96/administrator", "icon: /96/alarm", "icon:/96/anchor"]
With Me
.H = 150
.W = 450
.Arrangement = Arrange.Vertical
.Padding = 5
End With
HBox1 = New Hbox(Me)
HBox1.H = 96
HBox1 .W = 100
For iloop = 0 To 2
With hToolButton = New ToolButton(HBox1) As "TButtons"
.W = 96
.H = 96
.Border = True
.Name = sName[iLoop]
.Font.Size = 1
.Picture = Picture[sPicture[iLoop]]
End With
If iLoop < 2 Then Spring1 = New Spring(hBox1)
Next
Spring1 = New Spring(Me)
With Label1 = New Label(Me) As "Label1"
.H = 36
.W = 100
. Font.Bold = True
.Alignment = Align.Center
End With
Timer1 = New Timer
Timer1.Start
End
RE: Atajo de teclado en ToolButton - guizans - 25-01-2024
(25-01-2024, 13:44)cogier escribió: ¡Estoy destrozado! Me he levantado y lo he vuelto a intentar.
¿Ves? Esta segunda opción me parece mucho mejor.
Muchas gracias y no te preocupes, no te voy a volver a destrozar
|