Mostrando entradas con la etiqueta APIs. Mostrar todas las entradas
Mostrando entradas con la etiqueta APIs. Mostrar todas las entradas

24 septiembre 2007

Poner una ventana en primer plano

En este caso, el empleo dado a la función API setWindowPos ha sido para que la ventana de "splash" de inicio de una aplicación sea siempre visible, y no se quede en segundo plano mientras esta abierta, pero podría usarse para la típica aplicación que deseamos que siempre se quede en primer plano, usando dicha función con su ventana principal.

En primer lugar debemos declararla como función externa del siguiente modo:



Después, sobre la ventana de "splash", en el propio evento open podemos usar el siguiente código:



Si queréis información completa de la función SetWindowPos, la podéis encontrar en el MSDN de Microsoft. Respecto a los valores de las constantes los dejo aquí para mayor facilidad:



Como siempre, espero que os sea de utilidad. Hasta pronto.

29 septiembre 2006

Crear objetos de Forma dinámica en un UserObject

Este post se origina con la respuesta que he dado en un foro de Sybase a este tema. Me parece interesante dejarlo aquí para que no se quede en el tintero, luego es muy difícil localizar temas antiguos en los foros.

La problemática surge de que en PB no se puede añadir un objeto, creado de modo dinámico, sobre un objeto de usuario visual. Sin embargo esto si se puede hacer sobre una ventana, así que utilizaremos esta opción para lograr lo que PB no nos permite hacer directamente.

Como se puede resolver... pues muy sencillo, hacemos el CREATE del objeto que queremos poner dinámicamente, le asignamos false a la propiedad visible y utilizamos la función OpenUserObject para pegarlo sobre la propia ventana donde se encuentra nuestro objeto visual, como el objeto esta invisible no se ve, después cambiamos mediante una función de API el padre del objeto creado dinámicamente y le asignamos como nuevo padre nuestro objeto visual y para terminar y antes de cambiar el atributo de visible, asignamos las propiedades que queremos al objeto en cuestión... Así se pierde mucho uno, por lo que lo mostraré con código. Reutilizaré el del post con las modificaciones necesarias para que funcione correctamente. Para poneros en antecedentes se trata de un objeto visual de usuario que se utilizará de barra de herramientas:

VARIABLES DE INSTANCIA DEL UO_BARRA_BOTONES:



DECLARACIÓN DE FUNCIÓN EXTERNA:



CONSTRUCTOR DEL UO_BARRA_BOTONES:



MÉTODO ADD:



Espero que os sirva a todos.

16 agosto 2006

VScrollBar siempre visibles

Cuando la cantidad de páginas mostradas en un dw es solo una, la barra de desplazamiento vertical no aparece y en ocasiones estéticamente puede molestar. PowerBuilder no permite dejar la barra siempre visible y que esta este activa o no según corresponda, pero podemos simularlo utilizando APIS de Windows:

Declaración de funciones externas:



Función: