Wednesday, December 3, 2014

Controles Dinámicos en Ax

Aqui les dejo ésto por si necesitan crear controles dinámicos en un formulario de Ax.

Primero vamos a crear un formulario con un Tab y un TabPage.


Luego,  en su método run vamos a agregar el control, en este caso es de tipó FormButtonControl

01 public void run()
02 {
03    FormButtonControl   button;
04    super();
05    button = element.design().addControl(FormControlType::Button,'DynamicButton');

06    button.name("Original");
07    button.text("Duplícame plz!!");
08    Total=1;
09    this.controlMethodOverload(true);

10 }

En la línea 05 lo agregamos al diseño del formulario y lo llamamos 'DynamicButton', en la línea 07 incremento mi variable para saber cuantos botones llevo agregados.

La línea 08 nos permitirá escribir métodos para este control.

01 void DynamicButton_Clicked()
02 {
03
04    FormButtonControl   button;
05
06    button = element.design().addControl(FormControlType::Button,'DynamicButton');
07    Total++;
08     button.text("Duplícame plz!!(" + int642str(Total)+")");
09
10 }


Bueno, un poco redundante pero se duplica a sí mismo pero ahora con el contador y sin nombre.





Cualquie botón, genera uno nuevo con el consecutivo correspondiente, pero ahora vamos a identificar el botón original para que el sea el único capaz de ejecutar la acción.

el código queda así:

01 void DynamicButton_Clicked()
02 {
03
04    FormButtonControl   button;
05    ;
06
07    if (element.controlCallingMethod().name()=="Original")
08   {
09        button = element.design().addControl(FormControlType::Button,'DynamicButton');
10        Total++;
11        button.text("Duplícame plz!!(" + int642str(Total)+")");
12    }
13 
14 }


Ya cuando lo implementen usen menos cadenas para comparar, es decir ya lo hacen bien.

Saludos =)




No comments:

Post a Comment