Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Consulta sobre Forms (https://www.clubdelphi.com/foros/showthread.php?t=47630)

eldiegofg 03-09-2007 16:40:26

Consulta sobre Forms
 
Hola gente, alguien sabe alguna forma de hacer que cuando se abre un form no se pueda seleccionar ningun otro form hasta que el primero se haya cerrado? O sea, como si fuera una confirmacion o algo asi, y que sin haber confirmado la opcion no se pueda seleccionar ninguna otra cosa. Se entiende lo que quiero? Probe con la propiedad formStyle creo (no recuerdo bien el nombre) asignandole el valor StayOnTop pero de esta forma solamente me deja el form en primer plano, no me impide seleccionar otra cosa, que es lo que estoy buscando. Espero haberme dado a entender y agradezco deantemano por su tiempo. Saludos

dec 03-09-2007 17:16:45

Hola,

Para lo que necesitas puedes usar el método "ShowModal" de los formularios, en lugar del método "Show". Fíjate además que "ShowModal" es una función cuyo resultado puedes utilizar si te es preciso.

Código Delphi [-]
begin
  with TFormulario.Create(nil) do
  try
    if (ShowModal() = mrOk) then
      {...}
    else
      {...}
  finally
    Free();
  end;
end;

eldiegofg 03-09-2007 22:28:38

Y con un MessageDlg
 
Hola, ante todo gracias por responder. Voy a probar lo que me sugieres. Pero tengo otra consulta: si quisiera hacer lo mismo pero en vez de con un form con un MessageDlg, como podria hacer???

eduarcol 04-09-2007 01:05:32

Cita:

Empezado por eldiegofg (Mensaje 228044)
Hola, ante todo gracias por responder. Voy a probar lo que me sugieres. Pero tengo otra consulta: si quisiera hacer lo mismo pero en vez de con un form con un MessageDlg, como podria hacer???

el messagedlg hace eso que pides

eldiegofg 04-09-2007 21:50:21

MessageDlg
 
El MessageDlg no hace eso que necesito. Lo unico que hace es tener una propiedad StayOnTop que hace que siempre quede visible hasta tanto se cierre, pero se pueden selecionar otros elementos, formularios, botones, etc con un MessageDlg en ejecucion. Yo justamente lo que no quiero es eso, quiero que se ejecute como si fuera un form modal. Alguna idea??? Muchas gracias

eduarcol 04-09-2007 22:46:35

lo acabo de probar y si lo hace, quizas no estemos hablando de lo mismo a ver te doy un ejemplo

Código Delphi [-]
MessageDlg('PRUEBA', mtError, [MBOK], 0);

eldiegofg 05-09-2007 22:09:23

Si, estamos hablando de los mismo. A mi me lo deja en primer plano pero me permite seleccionar las cosas que estan en el fondo... Que raro no? No se si tendra que ver pero tengo Delphi 7...

eduarcol 05-09-2007 22:20:48

y yo, que tal si colocas algun codigo a ver

eldiegofg 07-09-2007 00:05:43

Expongo el codigo en cuestion:

Código:

if MessageDlg('Eliminar?', mtConfirmation, mbOKCancel, 0, mbCancel) = mrOk then
 
MessageDlg('Ocupada', mtInformation, [mbOK], 0, mbOk)

Dos ejemplos de mi codigo con el MessageDlg que me hacen lo mismo. Quiza el mtError hace que el dialogo se muestre estilo modal, no lo probe, pero si a ti te funciona de esa manera es lo unico que se me ocurre...


La franja horaria es GMT +2. Ahora son las 13:37:35.

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