Como crear un minimizar o maximizar un Form abierto en ShowModal?
#1
Escrito 14 septiembre 2009 - 11:01
Espero que haya sido claro para que me puedan ayudar en lo que puedan, gracias
#2
Escrito 14 septiembre 2009 - 11:05
Salud OS
#3
Escrito 14 septiembre 2009 - 11:48
//Programa Application.Terminate; //Para cerrar el programa Application.Minimize; //Para minimizar Application.Maximize; //Para Maximizar Application.Restore; //Para Restaurar //Form2 Form2.Close; //conjuntamente con el evento OnClose cierras la ventana SendMessage(Form2.Handle,WM_SYSCOMMAND,SC_MINIMIZE,0); //Minimizas SendMessage(Form2.Handle,WM_SYSCOMMAND,SC_MAXIMIZE,0); //Maximizas SendMessage(Form2.Handle,WM_SYSCOMMAND,SC_RESTORE,0);; //Restauras
Saludos.
#4
Escrito 14 septiembre 2009 - 12:07
Pues sólo colocas tres botones que pueden ser BitButtons y colocar estos code:
delphi
//Programa Application.Terminate; //Para cerrar el programa Application.Minimize; //Para minimizar Application.Maximize; //Para Maximizar Application.Restore; //Para Restaurar //Form2 Form2.Close; //conjuntamente con el evento OnClose cierras la ventana SendMessage(Form2.Handle,WM_SYSCOMMAND,SC_MINIMIZE,0); //Minimizas SendMessage(Form2.Handle,WM_SYSCOMMAND,SC_MAXIMIZE,0); //Maximizas SendMessage(Form2.Handle,WM_SYSCOMMAND,SC_RESTORE,0);; //Restauras
Saludos.
Amigo enecumene, el codigo de Application esta bien pero el del form no, al menos a mi me marca error, yo lo haria de una manera super sencilla.
utilizando la propiedad WindowsState del TForm
es decir
if Self.WindowState in [wsNormal,wsMaximized] then Self.WindowState := wsMinimized;
hay otra forma, mas elaborada y esa se mete con los Msg de windows, alguna ves lo vi en el libro de referencia de Delphi 5 pero no lo tengo a la mano, espero que esto sirva.
saludos.
#5
Escrito 14 septiembre 2009 - 12:08
hay otra forma, mas elaborada y esa se mete con los Msg de windows, alguna ves lo vi en el libro de referencia de Delphi 5 pero no lo tengo a la mano, espero que esto sirva.
saludos.
Sí ya me di cuenta fue un error de tipeo, ya corregí los codes y es a base de mensajes .
Saludos.
#6
Escrito 14 septiembre 2009 - 12:12
Salud OS
#7
Escrito 14 septiembre 2009 - 12:18
Por cierto, deberías preguntarte y cuestinarte el querer hacer que una ventana modal tenga la posibilidad de minimizarse o maximizarse. Una ventana modal existe para dar aviso y obligar al usuario a que confirme o deniege una acción o para informarle de ciertos resultados (como por ejemplo: un error, o una confirmación de éxito, etc)
Habría que ver cual es el propósito del form2 y/o que es lo que se busca hacer. Creo que eso sería lo correcto.
Saludos,
#8
Escrito 14 septiembre 2009 - 12:32
Hola... yo tengo otra duda: ¿Que debo entender por "es decir como cuando la vea el usuario pareciera que fuera un Skin (piel)"?
Yo haría lo siguiente (un truco gráfico), con un Timage con la imagen del botón y con un SpeedButton la coloco encima del TImage con su propiedad Flat en True y el control BringToFront para que esté siempre encima, y eso da la sendación de que se trata un Skin o piel.
Saludos.
#9
Escrito 14 septiembre 2009 - 12:43
Pero para eso estaría bien que mejor programaras V3ct0r con Msg de windows.
saludos
#10
Escrito 14 septiembre 2009 - 12:54
Eso no es demasiado drama... nada que con la "técnica del pobre" que comenta Enecumene no se pueda lograr . Existen suites que generan skins... la gran mayoría es paga pero alguna gratuita y/o libre debe haber por allí. Está torry.net para consultar.
Lo que si considero necesario es evaluar si es deseable que una ventana, que se diseña modalmente deba contar con esa posibilidad. Repito: una ventana modal es para dar avisos y pedir confirmaciones. Creo que resultaría más cómodo si trabajase con una ventana normal y le pone el skin...
No se... yo nomás digo que una ventana modal con posibilidad de minimizarse, maximizarse, etc eso ya es una clara evidencia de que tal vez hay algo del asunto que no se entiende bien.
Saludos,
Saludos,
#11
Escrito 14 septiembre 2009 - 07:32
Yo quiero pensar que lo que quiere es darle un formato personalizado a la forma, y el mismo poner sus botones de Maxi, Mini y Sys, creo que es lo que quiere.
Pero para eso estaría bien que mejor programaras V3ct0r con Msg de windows.
saludos
Epale amigos disculpen la tardanza, Es como dice Razadi es para darle un toque personal a cada Form, claro me inmagine como tu dices que tengo que meterme con los Msg de Windows para poder implementarlo de manera correcta, yo probe con algunos codigos pero al minimizarlos por ejemplo me da un error.
#12
Escrito 14 septiembre 2009 - 07:51
Pues creo entender la mano... quiere darle cierta apariencia y añadirle sus propios botones.
Eso no es demasiado drama... nada que con la "técnica del pobre" que comenta Enecumene no se pueda lograr . Existen suites que generan skins... la gran mayoría es paga pero alguna gratuita y/o libre debe haber por allí. Está torry.net para consultar.
Lo que si considero necesario es evaluar si es deseable que una ventana, que se diseña modalmente deba contar con esa posibilidad. Repito: una ventana modal es para dar avisos y pedir confirmaciones. Creo que resultaría más cómodo si trabajase con una ventana normal y le pone el skin...
No se... yo nomás digo que una ventana modal con posibilidad de minimizarse, maximizarse, etc eso ya es una clara evidencia de que tal vez hay algo del asunto que no se entiende bien.
Saludos,
Saludos,
Hola Delphius, esta muy bien lo que planteas, para comentar lo que yo quiero hacer los estoy aplicando en un sistema administrativo y no estoy utilizando ventanas Mdi y por eso opte en utilizar ventanas Modales, quisiera aplicar yo mismo las implementaciones en la forma de manera de no recargar tanto el proyecto con mas componentes y como tamien lo que quiero hacer es algo sencillo (digo yo )que es cambiar solamente para agregar los botones de Maximizar Minimizar y Restaurar. Bueno se que me estoy complicando un poco las cosas pero ademas de aprender a utilizar las API quisiera utilizar los mas que pueda en mis proyectos para hacerlos lo mas rapidos posibles
#13
Escrito 14 septiembre 2009 - 08:30
#14
Escrito 14 septiembre 2009 - 09:32
Hola Delphius, esta muy bien lo que planteas, para comentar lo que yo quiero hacer los estoy aplicando en un sistema administrativo y no estoy utilizando ventanas Mdi y por eso opte en utilizar ventanas Modales, quisiera aplicar yo mismo las implementaciones en la forma de manera de no recargar tanto el proyecto con mas componentes y como tamien lo que quiero hacer es algo sencillo (digo yo )que es cambiar solamente para agregar los botones de Maximizar Minimizar y Restaurar. Bueno se que me estoy complicando un poco las cosas pero ademas de aprender a utilizar las API quisiera utilizar los mas que pueda en mis proyectos para hacerlos lo mas rapidos posibles
Gracias por las aclarar un poco las cosas.
El concepto de ventana modal es independiente de si se trata de MDI o no... Repito por si no queda claro: Cuando uno abre una ventana modalmente lo que consigue es: impedir al usuario hacer uso de cualquier otra ventana, ya que esta no devuelve el control sino es hasta que se cierre ésta.
Es útil y aconsejable cuando se deba mostrar avisos. No tiene sentido lógico ni práctico minimizarla, ni maximizarla.... ¡Algo a sucedido o es de importancia avisar y llamar la atención al usuario!
Lo que tu pretendes va en contra de la lógica y en sentido común y el esperado por el SO convengamos.
Si es como dices, que se trata de un sistema administrativo y/o de gestión con mayor razón hay que mantenerse a lo común y esperado. No te vayas por lo "extraño". ¡Cuando espera una ventana modal que sea y se comporte como una!
Simplemente para que quede más claro: Te sales del estándar.
Y si bien se puede agrandar, maximizar una ventana modal ¿Que hace ésto a los propósitos del sistema?
¿Que debería suceder cuando minimizas una ventana modal? Por defecto minimiza la aplicación. Pero el "aviso" sigue estando... "restaura" la aplicación y "Tatá"... de nuevo la ventana modal.... ¿Maximizarla? Eso ocultará a la vista a las otras pantallas... pero el "aviso" no se moverá... Peor aún: cubrirá toda la pantalla (exceptuando claro está la barra)
Una ventana modal debe ser chica, de un tamaño mediano a pequeño. Dar un simple aviso, tal vez un posible botón de "más detalles" para permitirle que se expanda o habilite un control aportando mayor información.
Y si estás en la idea de skins... ¿tienes pensado como y/o que hacer cuando ésta se expanda? Digo... el skin deberá adaptarse al nuevo tamaño.
Creo que por intentar darle cierta sencillez, vas a terminar complicando algunas cosas.
No se... tal vez soy bastante gallego cuadrao y no veo algo que tu vez.
Saludos,
#15
Escrito 15 septiembre 2009 - 08:29
Hola Delphius, esta muy bien lo que planteas, para comentar lo que yo quiero hacer los estoy aplicando en un sistema administrativo y no estoy utilizando ventanas Mdi y por eso opte en utilizar ventanas Modales, quisiera aplicar yo mismo las implementaciones en la forma de manera de no recargar tanto el proyecto con mas componentes y como tamien lo que quiero hacer es algo sencillo (digo yo )que es cambiar solamente para agregar los botones de Maximizar Minimizar y Restaurar. Bueno se que me estoy complicando un poco las cosas pero ademas de aprender a utilizar las API quisiera utilizar los mas que pueda en mis proyectos para hacerlos lo mas rapidos posibles
Gracias por las aclarar un poco las cosas.
El concepto de ventana modal es independiente de si se trata de MDI o no... Repito por si no queda claro: Cuando uno abre una ventana modalmente lo que consigue es: impedir al usuario hacer uso de cualquier otra ventana, ya que esta no devuelve el control sino es hasta que se cierre ésta.
Es útil y aconsejable cuando se deba mostrar avisos. No tiene sentido lógico ni práctico minimizarla, ni maximizarla.... ¡Algo a sucedido o es de importancia avisar y llamar la atención al usuario!
Lo que tu pretendes va en contra de la lógica y en sentido común y el esperado por el SO convengamos.
Si es como dices, que se trata de un sistema administrativo y/o de gestión con mayor razón hay que mantenerse a lo común y esperado. No te vayas por lo "extraño". ¡Cuando espera una ventana modal que sea y se comporte como una!
Simplemente para que quede más claro: Te sales del estándar.
Y si bien se puede agrandar, maximizar una ventana modal ¿Que hace ésto a los propósitos del sistema?
¿Que debería suceder cuando minimizas una ventana modal? Por defecto minimiza la aplicación. Pero el "aviso" sigue estando... "restaura" la aplicación y "Tatá"... de nuevo la ventana modal.... ¿Maximizarla? Eso ocultará a la vista a las otras pantallas... pero el "aviso" no se moverá... Peor aún: cubrirá toda la pantalla (exceptuando claro está la barra)
Una ventana modal debe ser chica, de un tamaño mediano a pequeño. Dar un simple aviso, tal vez un posible botón de "más detalles" para permitirle que se expanda o habilite un control aportando mayor información.
Y si estás en la idea de skins... ¿tienes pensado como y/o que hacer cuando ésta se expanda? Digo... el skin deberá adaptarse al nuevo tamaño.
Creo que por intentar darle cierta sencillez, vas a terminar complicando algunas cosas.
No se... tal vez soy bastante gallego cuadrao y no veo algo que tu vez.
Saludos,
Delphius tienes mucha razon y logica en lo que dices si yo me estoy complicando mucho y deberia hacer esos cambios que tu dices antes de que haga mas grande la aplicación y me sea mas complicado corregirla. Voy a cambiar el entorno a MDI pero me ayudan mucho puesto que con eso puedo crear alguna aplicación sencilla y agregarle un entorno diferente al estilo del Navegador Google chrome claro que en este caso seria una sola pantallar y las demas pantallas serian ShowModal pero solo para la configuración y mensajes de la aplicación, gracias por tu ayuda y tiempo aportado al post y claro y a todos lo muchachos que me ayudaron, de todas maneras voy a seguir inventando mas cosas para crear nuevas ideas en una interfaz y tambien aportar con la comunidad
#16
Escrito 15 septiembre 2009 - 12:22
No quiero que tomes mis palabras como un reproche, ni tampoco como la gran verdad.
Yo nomás digo que antes de estar "enchulando" la aplicación que te preguntes si realmente vale el esfuerzo. Por lo general, un sistema administrativo debe ser sobrio y lo más parecido al aspecto visual común y estandar con que se maneja Windows y sus herramientas.
Cuanto más te alejas de ese "estándar" más difícil se hace darle una capacitación al usuario para que se familiarice con el sistema... más de uno se podría sentir confundido si le presentas cosas de otro modo que no le es familiar.
Esto no sólo aplica en cuanto al aspecto estético sino también en cuanto a funcionalidad. Si el usuario recibe un aviso debe estar consciente de que es un aviso y no podrá hacer otra cosa hasta que de visto bueno... si ve un cuadro de texto... lo asimila con otro cuadro de texto común y corriente.
No se si me me entiende.
No te digo que no debas darle cierta estética, es bueno darle una apariencia nueva y fresca. El asunto está en no abusar de ella. No veas a esto como algo prioritario. Dedica tu esfuerzo a la lógica, la interfaz ya saldrá.
Saludos,