Comunidad Gambas-es
Menús desde lel editor de menús y desde código - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: General (https://gambas-es.org/forum-4.html)
+--- Tema: Menús desde lel editor de menús y desde código (/thread-913.html)



Menús desde lel editor de menús y desde código - Shell - 10-06-2022

Buenas!.

Viendo una aplicación, veía que se repetía mucho código, un procedimiento por cada opción, cuanta mas opciones había,
más procedimiento, más código. Confused

Y me animé a ver el problema. ¿ Y por qué no se crea un código común con distinta salida ?. Me acordé de una matriz de controles.
Aprovechar las propiedades del objeto Menú.

Desde código es algo como esto: Puede que eso sea más complejo.

Código:
Public Sub Form_Open()
 
  Dim h1 As Menu
  Dim h2 As Menu
  Dim h3 As Menu
 
  h1 = New Menu(Me)
  h1.Text = "Opciones"
 
  h2 = New Menu(h1) As "Opcion"
  With h2
    .Text = "Opcion 1"
    .Tag = 0    
  End With
 
  h3 = New Menu(h1) As "Opcion"
  With h3
    .Text = "Opcion 2"
    .Tag = 1
  End With
 
End

Public Sub Opcion_Click()
 
  Dim quehacer As String
 
  Select Case Last.tag
      
    Case 0
      quehacer = "caminar"      
    Case 1
      quehacer = "correr"
  End Select
 
  Message.Info("La " & Last.text & " es " & quehacer)
 
End

Y luego lo hice desde el editor de menús.
Imagen con una de las opciones.

[Imagen: 90lQlps.png]

Cuando usaba los menús, no usaba grupos ni tags. Y luego viendo un código de un compañero, ostras cuanto código.

Subo el ejemplo.

Saludos


RE: Menús desde lel editor de menús y desde código - Shordi - 11-06-2022

Y no olvides el evento Action_Activate de los formularios. Hace lo mismo... además. Es decir puedes encargar una tarea al evento común del grupo y otra al Action_Activate con el mismo click.

Saludos.


RE: Menús desde lel editor de menús y desde código - Shell - 11-06-2022

(11-06-2022, 10:25)Shordi escribió: Y no olvides el evento Action_Activate de los formularios. Hace lo mismo... además. Es decir puedes encargar una tarea al evento común del grupo y otra al Action_Activate con el mismo click.

Me parece que de "Action" creaste un post hace tiempo. Lo buscaré. Por ignorancia no lo he usado. Confused
Me centré más en la eliminación de código redundante y unos cuantos procedimientos.
 

Fue GambaFeliz. El preguntaba sobre la propiedad Action.

Propiedad Action

Me sonaba más que habías creado una explicación larga de esta propiedad.

Parece que no todos los controles tienen esta propiedad. Es curioso que un textbox la incluya y un textarea no.
Cuando "casi" son parecidos.


Si que la tiene solo que no aparece en la ventana de propiedades del editor. Esto es raro. Confused
Ya que cuando busco la ayuda sobre TextArea puede verse que la tiene. Ademas es un componente de Qt4.

Saludos