Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemas al guardar la posicion de una ventana en el registro (https://www.clubdelphi.com/foros/showthread.php?t=15374)

neon 21-10-2004 10:24:45

Problemas al guardar la posicion de una ventana en el registro
 
Hola a tod@s,
Guardo la posicion de una ventana en el registro al cerrar esta ventana, y al abrirla se coloca en la posición que la habiamos dejado anteriormente. Los usuarios se pueden conectar a la aplicación desde un ordenador con dos monitores, y si un usuario guarda la posición de la ventana en la segunda pantalla, al cerrar la aplicación se guarda esta posicion en el registro. El problema está en que el usuario luego se puede conectar de otra estación con un único monitor y la posicion q tenia anteriormente guardada es erronea, ya que ahora no existe ese segundo monitor y la ventana no se puede ver.

Alguien sabe como puedo hacer esta comprobación, de que si no existe esa posicion guardada en memoria ( la del 2º monitor) que me lo pase al monitor principal?

Saludos.

Neftali [Germán.Estévez] 21-10-2004 11:01:15

El objeto TScreen de Delphi posee propiedades que tal vez te puedan ser de utilidad. Comprueba el Width y el Height de la pantalla con:

Código Delphi [-]
  Screen.Width
  Screen.Height
y comparalos con tus posiciones almacenadas.

También podrías guardar, además de la posición si la pantalla se ve en el segundo monitor o no, y luego comprobar cuantos mnitores existen en el ordenador donde se visializa.

Código Delphi [-]
  Screen.MonitorCount

Luego posees las propiedades que trabajan con el espacio total incluyendo todos los monitores: DesktopHeight, DesktopLeft, DesktopRect, DesktopTop, DesktopWidth y las que trabajan con el espacio del primer monitor (el primario) WorkAreaHeight, WorkAreaLeft, WorkAreaRect, WorkAreaTop, WorkAreaWidth. Combinando éstas puedes encontrar una solución; Por ejemplo:
Si sólo existe un monitor y las coordenadas guardadas (LEFT) "se salen" del espacio del primer monitor, restar a las coordenadas en ancho del primer monitor (BIS para el TOP).


La franja horaria es GMT +2. Ahora son las 13:42:55.

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