Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ocultación de pantallas modales en Windows 7 (https://www.clubdelphi.com/foros/showthread.php?t=89305)

briast 30-10-2015 11:03:00

Ocultación de pantallas modales en Windows 7
 
Hola. Tengo un problema "absurdo" con una aplicación desarrollada en Delphi 2010 ejectuándose en Windows 7 y superiores. Las pantallas (forms) modales a veces se quedan detrás de otras, especialmente detrás de pantallas no modales. Es algo extraño pues en Windows XP / Vista no ocurría.

No pasa siempre y no he conseguido reproducir ninguna pauta en la que ocurra, pero ocurre. A veces, abres una pantalla modal (con showmodal) desde una pantalla no modal (mdi) y se queda oculta detrás, cuando debería ser la pantalla principal. Incluso entre diferentes equipos instalados con Windows 7, en algunos pasa más que en otros.

He estado buscando por internet diferentes soluciones, como por ejemplo aquí, pero ninguna ha surtido efecto. Lo último que he puesto la pantalla modal es este código:

Código:

procedure TForm1.CreateParams(var params: TCreateParams);
begin
  inherited;
      try
          params.WndParent := Screen.ActiveForm.Handle;
      except
        params.WndParent := 0;
      end;

      if (params.WndParent <> 0) and (IsIconic(params.WndParent)
        or not IsWindowVisible(params.WndParent)
        or not IsWindowEnabled(params.WndParent)) then
        params.WndParent := 0;

      if params.WndParent = 0 then
        params.WndParent := Application.Handle;
end;

Por lo que he leído esta cuestión tiene que ver con la gestión de las pantallas en Windows 7 y que no permite controlar el zindex de las mismas (supongo que por el tema de los virus o adware) para evitar que controlen quien se pone en primer plano.

¿Alguien sabe como solucionarlo o tiene alguna sugerencia?
Gracias por vuestra ayuda.

Neftali [Germán.Estévez] 30-10-2015 12:46:32

Revisa que no tengas otras pantalla con la característica de StayOnTop.
Alguna vez me ha pasado y el problema venía por eso.

briast 04-11-2015 09:49:58

Hola. Gracias por la respuesta pero no tengo ninguna otra pantalla con esa propiedad. Estoy empezando a pensar que quizás el problema podría venir por unos componentes SuiPack (sunisoft) que uso en todos los formularios para tener un skin modificable. Es que ya otra cosa no sé que puede ser.
He enviado correos al que creó los componentes pero ya no responde.


La franja horaria es GMT +2. Ahora son las 12:34:20.

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