Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   bloquear ventana padre cuando creo la hija (https://www.clubdelphi.com/foros/showthread.php?t=12807)

delphinario 28-07-2004 15:49:49

bloquear ventana padre cuando creo la hija
 
hola,

en mi programilla necesito que el usuario no pueda acceder a la ventana padre mientras q la hija este abierta, la cosa es que no puedo deshabilitarla pq sigo trabajando por codigo sobre el padre(mostrando mensajes en la barra de estado y demas...) como lo hago?


gracias

delphi.com.ar 28-07-2004 16:17:29

¿Has oído hablar de formularios modales?

ruina 28-07-2004 17:40:16

me parece que necesita algo mas "enrevesado" que un showmodal...

En cualquier caso la tésnica que voy a explicar no se deberia de usar, seguro que la forma correcta de hacerlo es atraves de un showmodal... eso de que el form de debajo siga trabajando es muy raro.
ahi vamos:

ok, sacamos dos forms que se usan mutuamentes, esto es, en la causula uses (la del implementation, no la de interface que sino os dará una referencia cruzada al compilar)

Form1
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
    Form2.Show;
    self.Enabled:=false;
end;

form2, escribimos el evento OnHide del formulario
Código Delphi [-]
procedure TForm2.FormHide(Sender: TObject);
begin
    form1.Enabled:=true;
end;

y a correr!
(pero recordar que esto no lo deben hacer en casa, si se hace inevitable el uso de esto es que algo está mal diseñado )

delphi.com.ar 28-07-2004 18:31:01

Cita:

Empezado por ruina
En cualquier caso la tésnica que voy a explicar no se deberia de usar, seguro que la forma correcta de hacerlo es atraves de un showmodal... eso de que el form de debajo siga trabajando es muy raro

De ser así, te recomiendo utilizar las funciones DisableTaskWindows y EnableTaskWindows.

Saludos!

roman 28-07-2004 18:52:49

Yo no veo nada de raro en que el formulario de abajo muestre mensajes mientras se trabaja en la ventana modal ni creo que sea reflejo de un mal diseño. Y enfatizo modal porque el hecho de mostrar una ventana modal no impide en lo absoluto actualizar por código propiedades de la ventana de abajo. La solución de delphi.com.ar de usar formularios modales es más que suficiente.

// Saludos

delphi.com.ar 28-07-2004 19:04:28

Cita:

Empezado por roman
Yo no veo nada de raro en que el formulario de abajo muestre mensajes mientras se trabaja en la ventana modal ni creo que sea reflejo de un mal diseño. Y enfatizo modal porque el hecho de mostrar una ventana modal no impide en lo absoluto actualizar por código propiedades de la ventana de abajo. La solución de delphi.com.ar de usar formularios modales es más que suficiente.

La otra sugerencia es para que si quiere que el método ShowModal no interrumpa el hilo de ejecución del procedimiento donde se lo utiliza.

Tengo un componente algo interesante para hacer cosas similares, pero como lo hice hace mucho me daría vergüenza publicar el código :D, tiene siervos rezagos de VB :D... En cuanto lo emprolige, lo subo!

nicolasdom 01-10-2004 20:19:19

Cuando quiero crear mi formulario al hacer click en un boton hago esto:

Código:

procedure TMainForm.dxNavBarConfiguracionItem2Click(Sender: TObject);
begin
  dxNavBarConfiguracionItem2.Enabled:=False;
  Animaciones(False);
  Application.CreateForm(TFormConfEstMenues, FormConfEstMenues);
  Animaciones(True);
//  FormConfEstMenues.ShowModal;
end;

Bien pero yo quiero que me cree el formulario pero que no me lo muestre... es decir que me lo muestre cuando le pongo el ShowModal. Pero me lo muestra antes. Y si le destapo la linea de ShowModal me tira problemas pero si le pongo Show en ves de ShowModal no... que puede ser? sugerencias?


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

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