Asignar a procesos funciones para invocar

Started by Yawin, June 02, 2015, 04:46:47 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Yawin

¡Hola a todos! Sé que el título no es muy descriptivo pero es que no se cómo contar lo que quiero hacer. Os cuento:

En Unity hay una función que se llama invoke, y funciona pasándole como parámetros una string con el nombre de la función a la que quieres que llame y un int con los milisegundos de delay con la que quieres que la llame.

Mi pregunta es: ¿sería posible en Bennu guardar en una string el nombre de una función a la que quiera llamar y que luego se llame a esa función?
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

warrior_rockk

Me temo que de momento tendrás que hacerlo a mano. Es decir, crearte tu una función que le pases esa string y el tiempo por parámetro y con un case lances la función correspondiente al string

Yawin

Es que el tema es que quiero hacer una librería que te permita hacer botones y que puedas hacer algo así como:


process main()
   private
       gui_button boton=gui_button(x,y,size_x,size_y,etc...);
   end
   begin
       boton.onclick="función";
   end

function función()
    begin
       loquesea;
    end
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

warrior_rockk

En Bennu no es posible eso que quieres hacer.

Yawin

Jo, pues estaría guay que se añadiera en una próxima versión.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

FreeYourMind

y para que ? para engorrar el lenguaje ? eso que pides es cambiar la filosofia o estructura de un lenguaje como lo quieras llamar, es hacer del lenguaje algo parecido a los lenguajes con eventos/objetos, para tener eso que pides tambien tienes que tener creada la funcion que llamas en el texto del nombre, que es lo mismo.

Tener

boton.onclick = "función";

a fines practicos es lo mismo que tener  boton_onclick = función();

Yawin

No, no es lo mismo. Porque con boton.onclick="funcion" estás guardando en una variable esa función y cuando el proceso tenga que echar mano de ella la usará.
boton.onclick=funcion(); lo que hace es ejecutar la función y guardar en una variable el resultado que devuelve.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

FreeYourMind

mas bien estas asignando un evento, tal como en programacion windows forms, en bennu si tienes que echar mano de ella como dices pues la llamas y ya esta ;)

Yawin

Pero si quiero hacer una librería que proporcione botones, textboxes y tal, es mucho más cómodo dar esta opción que proporcionar un sistema de flags que diga si se está pulsando, si no, etc...

Pero bueno, como no puede ser tampoco hace falta darle más vueltas.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

FreeYourMind

pues la hay, esta por el foro, que tiene botones, ventanas, etc, estilo windows forms, no recuerdo es donde y quien la hizo, prg quizas ? habria que ver su src para ver como lo hizo


Yawin

La quise usar, pero no se adaptaba a lo que necesitaba xD
Imagino que soy un tanto rarete con estas cosas.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end