Page 1 of 1

Asignación dinamica de accion en botones

Posted: Wed Mar 29, 2017 11:10 am
by groiss
Buenos días:
Tengo que crear un dialogo con una serie de botones, el número de los mismos es diferente de unas ocasiones a otra, y los tengo creados desde recursos, esos tiene una unica acción, que es la de cargar una variable con el valor que representa el prompt del botón, y ponerla a su vez en un say. Pues esta es la que no acabo de conseguir

Code: Select all

for i=1 to ultimo
        redefine BUTTON aboton[i] id 1100+i of odlg prompt str(i,3,0)  ACTION {cres:=(::cCaption),ores:settext(cres)}
              
next i
 
Así es como lo hago, evidentemente no es la forma, pues me genera un error en tiempo de ejecución al no existir la variable self

Alguna idea, he buscado por el foro y no encuentro nada, pero me pareció ver hace tiempo algo similar
Un saludo y gracias

Re: Asignación dinamica de accion en botones

Posted: Wed Mar 29, 2017 12:04 pm
by hmpaquito
Un primer error es que la creacion de los botones no la haces en un metodo de la clase que contiene la data cCaption. O metes la creacion en un metodo de la clase o pasas el objeto como parametro y luego lo utilizas asi objPar:cCaption.

Re: Asignación dinamica de accion en botones

Posted: Wed Mar 29, 2017 2:59 pm
by groiss
Hmpaquito, gracias.
Supongo que si aplico tu solución, acabo con el mismo valor siempre, pues el valor que devolvería cualquier actio de cualquier boton sería aboton:ccaption, i si el último valor que tomó i era 76, pues en todos los botones devolverá 76.
Lo que tengo que hacerlo he visto alguna vez en este foro, pero no lo encuentroes que el baction de cada boton sea diferente aunque generado de forma secuencial usando el mismo patron y ahi es donde no doy con la forma.
Muchas gracias
José Luis

Re: Asignación dinamica de accion en botones

Posted: Wed Mar 29, 2017 3:05 pm
by Antonio Linares

Re: Asignación dinamica de accion en botones

Posted: Wed Mar 29, 2017 3:19 pm
by groiss
Antonio:
Muchas gracias, eso buscaba, pero cual es mi sorpresa que si pongo en el action del redefine del button esto cres:=str(::nid-1100,3,0)
me tira un error en ejecución diciendo que no existe la variable self.
Gracias.
Un saludo