Comunidad Gambas-es

Versión completa: Menús desde lel editor de menús y desde código
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
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.

GAMBAS
  1. Public Sub Form_Open()
  2.  
  3.   Dim h1 As Menu
  4.   Dim h2 As Menu
  5.   Dim h3 As Menu
  6.  
  7.   h1 = New Menu(Me)
  8.   h1.Text = "Opciones"
  9.  
  10.   h2 = New Menu(h1) As "Opcion"
  11.   With h2
  12.     .Text = "Opcion 1"
  13.     .Tag = 0    
  14.  
  15.   h3 = New Menu(h1) As "Opcion"
  16.   With h3
  17.     .Text = "Opcion 2"
  18.     .Tag = 1
  19.  
  20.  
  21. Public Sub Opcion_Click()
  22.  
  23.   Dim quehacer As String
  24.  
  25.       
  26.     Case 0
  27.       quehacer = "caminar"      
  28.     Case 1
  29.       quehacer = "correr"
  30.  
  31.   Message.Info("La " & Last.text & " es " & quehacer)
  32.  



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
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.
(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