PDA

Ver la Versión Completa : Cómo puedo hacer multiventana mi aplicación


dalsim
03-08-2008, 22:35:30
en mi aplicacion estoy utilizando como menu prinipal un menu que me abre varios form pero como hacerle para qe me habra varias formularios sin que se desactive y puedo trabajar con los dos formulario a la vez gracias (como las ventanas de windoes solo que aqui quiero tener dos formularios y capturar y no tener que salirme de uno para antra a otro estoy con delphi 2007

Neftali [Germán.Estévez]
04-08-2008, 09:16:22
(como las ventanas de windoes solo que aqui quiero tener dos formularios y capturar y no tener que salirme de uno para antra a otro estoy con delphi 2007

Los formularios se pueden abrir en modo normal:

form.Show;


Y en modo modal:

form.ShowModal;


Un formulario modal queda en primer plano y para trabajar con otra ventana debes cerrarlo (creo que a eso te refieres). En cambio, si abres un formulario en modo normal, puedes pasar a trabajar con otras ventanas sin problemas sin tener que cerrar esa (como lo hace Windows).

dalsim
04-08-2008, 14:19:37
neftali asi le he cambiado pero la ventana se abre y automaticamente se cierra no me dela verla a que se deberia

dec
04-08-2008, 14:25:39
Hola,


neftali asi le he cambiado pero la ventana se abre y automaticamente se cierra no me dela verla a que se deberia


Pues no parece que sea el comportamiento esperado. Si abres un formulario y este, automáticamente, se cierra... quiere decir que hay algo que no está funcionando como se espera. O sí. Es complicado decirlo sin tener más información. Quizás con el código fuente que muestra el formulario, e incluso el código fuente del evento "OnCreate" y "OnShow" del formulario que abres, igual partiendo de ahí es posible ver qué está pasando.

dalsim
04-08-2008, 14:29:31
creo que es por ahi donde dices lo checo y pongo los dos procedimientos pero si al principio pense que era por que desabilitaba la barra de menus del mismo programa principal

Neftali [Germán.Estévez]
04-08-2008, 15:22:50
neftali asi le he cambiado pero la ventana se abre y automaticamente se cierra no me dela verla a que se deberia

Pues no parece que sea el comportamiento esperado.

Bueno, sí suele ser un comportamiento "normal" aunque no correcto si tenías una cosa como esta:


try
Form.ShowModal;
finally
Form.Free;
end;


y ahora has puesto:

try
Form.Show;
finally
Form.Free;
end;


Al principio cuando tu ejecución llegaba al ShowModal, se detenía en ese punto hasta que cerrabas el formulario, y una vez cerrado se ejecutaba la siguiente línea. Ese es el funcionamiento de las ventanas modales. Por eso, no puedes ejecutar código de otras ventanas, porque tu programa se "detiene" (por decirlo así) en esa línea y no sale del código de ese formulario.

Al cambiar a Show, el funcionamiento cambia; El programa ya no se detiene en esa línea, por eso se pueden ejecutar otros formulartios y por tanto, justo después de ejecutar el Show, ejecuta el Free y se cierra el form.

¿La solución? Fácil. Si ejecutas Show no debes liberar el formulario en la siguiente línea, sino hacerlo, por ejemplo en el OnClose del formulario.


Form.Show;

....

Y en el OnClose de ese formulario pones:

Action := CaFree;


Pruébalo y dinos qué tal...

Espero haberme explicado decentemente...

Un saludo.

dalsim
04-08-2008, 15:26:41
que me has leido mi codigo a distancia procurare ser mas cuidadoso y poner mas informacion de hecho creo que con eso se soluciono gracias no digo nombres por que me puedo quedar corto gracias

dalsim
04-08-2008, 15:28:11
para empezar gracias

dalsim
05-08-2008, 02:51:19
bueno pues una vez que sali del trabajo me puese hacer lo ue me dijiste y efectivamete resulto, solo una pregunta de lo que resulto ahora son tres ventanas abiertas pero si quiero pasar de una venana a otra no me aparecen los botones en la barra de inicio (como si hubiera dos documento de word)que aparescan botones (de las mismas ventanas del sistema modificado)en la barra de inicio para poder abrilas y no minimizarlas no se si me explique o alguna sugencia para ocultar el form de menus para que no se me ocuten las ventanas a tras de mi formjulario principal

jarr-o
12-08-2008, 19:49:43
Disculpa una pregunta
¿Tu aplicacion esta creada tipo MDI?
Si no es asi talvez deberias de hacerla de este tipo

Blaster
27-08-2008, 00:30:57
Mira, descarga este paquete (de pago) desde Torry.net:

http://www.torry.net/vcl/packs/skins/suipacktrial.zip

Luego, cuando hayas descargado el archivo, descompáctalo y ve a la carpeta "DelphiDemo", en donde hallarás el archivo "MDIDemo.exe", que me parece que es lo que necesitas. Ahí mismo está el fuente de cómo se hace. Algún ejemplo de eso mismo debe estar en una pila de lados.

dalsim
27-08-2008, 03:48:33
y otra pregunta en que direccion se instala

Blaster
27-08-2008, 04:31:51
Verdad, no me percaté que inicialmente digiste que trabajabas con Delphi 2007. Es que yo uso Delphi 7 y no me fijé bien. Los paquetes los puedes poner donde quieras, lo mismo que el codigo fuente, siempre que lo agregues en Library path, por supuesto. Ahora bien, por una cuestión de orden, yo usualmente creo una carpeta dentro de:

C:\Archivos de programa\Borland\Delphi7\Bin\Adiciones

En esta carpeta, de nombre "Adiciones", es donde yo voy poniendo de forma ordenada y clasificada, los distintos componentes que descargo de torry.net y otros lugares. Si el día de mañana cambias de PC o reinstalas el SO, trabajas en otra parte, etc, lo unico que tienes que hacer es compactar la carpeta "Adiciones", te la llevas contigo y ya está.

Bueno, sobre lo que preguntas, te diré basándome en paquetes anteriores, pues el paquete en cuestión "SuiPackTrial (http://www.torry.net/vcl/packs/skins/suipacktrial.zip)" no lo instalé pues al fin y al cabo es de prueba y aquí en Cuba eso no se puede comprar.

En mi caso, usando el Delphi 7, para instalar el paquete solo se debe abrir con el Delphi el archivo SUIPackD7.dpk, pulsar en compilar y luego en instalar. Luego vas a:

Tools/Environment Options, luego pinchas en la pestaña "Library", buscas donde dice "Library path" y al lado hay un botoncito con tres puntos suspensivos, pulsas en él y entonces te sale una ventana de nombre "Directories", en donde debes agregar la carpeta donde está el código fuente del paquete instalado (no son los archivos *.dpk, sino donde están los *.dcu, o sea el "Source"). Y luego de eso ya está listo.

Bye.