Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cómo puedo hacer multiventana mi aplicación (https://www.clubdelphi.com/foros/showthread.php?t=58845)

dalsim 03-08-2008 22:35:30

Cómo puedo hacer multiventana mi aplicación
 
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

Cita:

Empezado por dalsim (Mensaje 305468)
(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:
Código Delphi [-]
  form.Show;

Y en modo modal:
Código Delphi [-]
  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
 
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,

Cita:

Empezado por dalsim
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 va por ahi donde dices
 
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

Cita:

Empezado por dalsim (Mensaje 305531)
neftali asi le he cambiado pero la ventana se abre y automaticamente se cierra no me dela verla a que se deberia

Cita:

Empezado por dec (Mensaje 305533)
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:

Código Delphi [-]
try
  Form.ShowModal;
finally
  Form.Free;
end;

y ahora has puesto:
Código Delphi [-]
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.

Código Delphi [-]
  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

lo hare y comento y efectivamente
 
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

neftali y dec
 
para empezar gracias

dalsim 05-08-2008 02:51:19

hola neftali
 
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

Posible solución
 
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

disculpa pero no funciona para delphi 2007
 
y otra pregunta en que direccion se instala

Blaster 27-08-2008 04:31:51

Es verdad! Lugar de instalación
 
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" 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.


La franja horaria es GMT +2. Ahora son las 00:49:48.

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