Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Form encima de otro, pero dentro de mi aplicación (https://www.clubdelphi.com/foros/showthread.php?t=95106)

jdelsol 08-03-2021 05:53:40

Form encima de otro, pero dentro de mi aplicación
 
Hola a todos

Quiero hacer algo que parece sencillo pero no lo logro como lo quiero, quiero que un formulario siempre se muestre encima de otro, pero solo dentro de mi aplicación... por ejemplo quiero que Form2 siempre se muestre encima de Form1.

No puede ser con la propiedad
Código Delphi [-]
Form2.FormStyle:= fsStayOnTop
porque esto lo hace de forma global y me muestra "Form2" encima de todas las aplicaciones abiertas
Tampoco quiero que sea así
Código Delphi [-]
Form2.Parent:= Form1;
porque necesito que las ventanas sean independientes.

Espero que haya alguna forma sencilla de hacerlo y que me puedan ayudar

Un saludo y gracias de antemano ^\||/

newtron 08-03-2021 10:05:13

Buenas.


Investiga la función SetWindowPos. Yo la uso con estos parámetros para mantener un formulario al fondo de todos los de la aplicación


Código Delphi [-]
  SetWindowPos(Handle, GetBackForm(self).Handle, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);


y estoy seguro de que cambiando algún parámetro podrás mantenerlo al frente.


Saludos

jdelsol 10-03-2021 05:07:14

Muchísimas gracias amigo newtron ^\||/^\||/,

Con la función SetWindowPos he logrado lo que quiero de la siguiente manera

Código Delphi [-]
SetWindowPos(Form2.Handle, Form1.Handle, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);

Con esta función logro traer el Form2 al frente de forma temporal ya que si hay alguna interacción en Form1, Form2 vuelve al fondo. Para que esto no pase hago la llamada a SetWindowPos desde el evento OnMouseDowm del Form1.

Este solución no es la que mas me gusta ya que genera un pequeño parpadeo en Form2 pero a menos he resuelto por el momento.

Si existiese otra forma y la pudieran compartir estaría muy agradecido

Saludos ^\||/


La franja horaria es GMT +2. Ahora son las 04:31: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