Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Windows y Diálogos (un par de ejemplos) (https://www.clubdelphi.com/foros/showthread.php?t=75414)

dec 21-08-2011 12:10:52

Windows y Diálogos (un par de ejemplos)
 
Hola,

¿Alguna vez has necesitado mostrar un diálogo desde tu aplicación creándolo tú mismo, utilizando el API de Windows? Estamos hablando, sobre todo, de cuando nos hemos visto en la necesidad de reducir el tamaño de nuestra aplicación, concretamente, del archivo ejecutable de nuestra aplicación.

Últimamente he estado pegándome un tanto con estos asuntos, y, he descubierto (mira que soy nuevo) una función maravillosa en el API de Windows: la función "DialogBox". Esta función es maravillosa porque nos permite trabajar "visualmente" con nuestro diálogo, ocupando este mucho menos que si utilizáramos otras funciones conque Delphi cuenta.

En efecto, mostrar una ventana creándola desde cero es un asunto complejo. Claro está que puede hacerse, y, con tiempo y una caña, como suele decirse, podemos obtener los resultados esperados. Sin embargo, en algunas circunstancias, crear una ventana no nos serviría de mucho. Al menos, en cierto proyecto que traigo entre manos, no me servía en absoluto, puesto que la aplicación "host" se negaba a mostrar la ventana creada de todas las maneras.

Pero, hete aquí que descubro que con la función "DialogBox" y el programa XN Resource Editor, por ejemplo, podemos diseñar nuestro diálogo de forma visual, y, además, resulta más sencillo de integrar en nuestros proyectos, puesto que no se requiere el uso de un "bucle de mensajes" que tal vez termine bloqueando una posible aplicación "host" en que se ejecutara la nuestra. La complejidad se reduce al usar "DialogBox", pero, no así la potencia, puesto que a veces menos es más y este parece ser otro caso.

Como no quiero enrrollarme más, simplemente, os dejo un enlace a ciertos ejemplos que he subido al Directorio del ClubDelphi, de manera que vosotros mismos podéis echarles un vistazo, jugar con ellos, y, por supuesto, hacer uso de su código fuente de la mejor forma que consideréis.

Descargar: Ejemplos Windows and Dialogs.zip

Espero que a alguien le pueda resultar de cierta utilidad, aunque, ciertamente, yo he basado buena parte de mi trabajo en información obtenida de Internet, vamos, que, no invento nada con estos ejemplos, y, más de uno de vosotros ya habréis tenido que lidiar con "Windows y Diálogos" de este tipo antes. Pero bueno.

¡Hasta pronto!

Casimiro Notevi 21-08-2011 13:50:55

Muy interesante, hasta ahora estoy usando la socorrida InputBox para este tipo de peticiones simples, aunque tiene la limitación de que sólo devuelve un valor, claro.

dec 21-08-2011 14:19:25

Hola,

No sólo eso, Casimiro, sino que la función "InputBox" se implementa a través de la clase "TForm", de manera que el tamaño del ejecutable crece en consecuencia. Sin embargo, la función "DialogBox" pertenece al API de Windows y su uso (junto con las "plantillas para diálogos") no se nota en el ejecutable, como puedes ver en los ejemplos que he subido, que, apenas pesan unos cuantos KB.

Y de esto es, precisamente, de lo que se trata, si el tamaño es un problema o pretende uno reducirlo cuanto pueda. :)

Casimiro Notevi 21-08-2011 15:45:11

Tienes razón, se ahorra mucho haciéndolo de esa forma.


La franja horaria es GMT +2. Ahora son las 20:43:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi