Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   varias ventanas modales (https://www.clubdelphi.com/foros/showthread.php?t=42082)

anubis 03-04-2007 12:17:37

varias ventanas modales
 
No se si debo preguntar cosas obvias, pero soy muy novato y estoy enredando con el delphi a ver si soy capaz de hacer un programa decente.
Tengo un problemilla con las ventanas modales. Cuando hago una llamada desde un form a otro con un showmodal, y desde este hago otra ya no me deja, existe alguna forma de llamar a otro form y que el control se quede en el ultimo form hasta que no salga de el?. Con form.Visible:=True me sale el form pero puedo volver al anterior y no quiero que haga eso hasta que no salga de este.

Gracias

dec 03-04-2007 12:27:16

Hola,

En principio no parece haber límite en el número de formularios "modales" que pueden mostrar a su vez formularios "modales". Haciendo alguna prueba yo no lo encuentro, vaya. :)

Inicia un nuevo proyecto de Delphi, una aplicación para Win32, añade un botón al formulario principal y acto seguido sustituye el código de la unidad "Unit1.pas" (del formulario principal) por este otro:

Código Delphi [-]
unit Unit1;

interface

uses
  Forms, Classes, Controls, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  with TForm1.Create(Self) do
  begin
    ShowModal();
  end;
end;

end.

Podrás ver que cada vez que pulses el botón del formulario recién creado se creará a su vez un nuevo formulario, cuyo botón puedes pulsar de nuevo... y así sucesivamente...

anubis 03-04-2007 12:43:39

Se agradece la verdad tu apoyo y rapido, gracias.

EStoy usando delphi 7 pro lite.
Cuando hago eso con tu ejemplo y le doy al boton realmente no hace nada, solo puedo pulsar el boton pero no se dibuja nada, esto tenia que ser asi?.
Mi idea es llamar a otros formularios que tengo creados, pero al segundo me dice que no se puede, si existe otra forma de llamarlos dejando el control al nuevo formulario hasta que salga de el?.

gracias de nuevo

dec 03-04-2007 12:49:18

Hola,

Je, je, je... fíjate si no es que los nuevos formularios se muestran en la misma posición que el anterior, de modo que aparentemente no pasa nada cuando pulsas el botón... aunque es raro que no te dieras cuenta al cerrar la aplicación...

En todo caso tengo que insistir: que yo sepa no hay limitación alguna al número de formularios "modales" posibles y, efectivamente, el código anterior ha de funcionarte correctamente... al menos así debería ser, vamos.

Lepe 03-04-2007 16:44:28

El Límite de ventanas modales creadas es:
Código Delphi [-]
TModalResult = Low(Integer) .. High(Integer);

ya que internamente se usa un integer para incrementar el nivel de ventanas modales.

O sea, que tienes desde :-2147483648 hasta 2147483647

Saludos

anubis 03-04-2007 20:31:19

Gracias de nuevo. Dec, ya comprobe lo que me comentaste, despues de pulsar el boton, me sale el mismo form, lo muevo y no nay nada debajo, si aprieto el boton varias veces igual.

De todas formas ya lo solucione :o, se me habia olvidado poner visible false para la ventana modal por eso me daba error, al hacer la llamada, al estar true, se volvia false y por eso daba error, eso pienso :o

gracias de nuevo por la paciencia ya preguntare mas cositas sino soy capaz.


La franja horaria es GMT +2. Ahora son las 07:48:04.

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