Windows puede asignar múltiples monitores en escritorios virtuales, lo que nos permite usar esto para diseñar aplicaciones fáciles de trabajar. Por ejemplo, PowerPoint utiliza completamente las ventajas de los monitores duales (la mayoría de las computadoras portátiles lo admiten). . Entonces, ¿cómo desarrollamos dicha aplicación? Este artículo le mostrará si implementa aplicaciones utilizando múltiples monitores usando Delphi.
Windows también admite métodos de visualización de clonación, y cada monitor produce el mismo contenido, lo que tiene sentido para algunas aplicaciones. Aunque algunas tarjetas gráficas también admiten dos monitores, no son realmente múltiples, sino los modos de visualización de alta resolución virtual (como 2048 × 768 o 1024 × 1536), lo que muestra la pantalla a dos monitores a través de la tarjeta gráfica. Ninguno de estos dos modos de visualización es Zhongdian introducido en este artículo, y también son muy simples, por lo que no los repetiremos nuevamente.
Windows admite hasta 10 monitores, y Windows mapea todos los monitores en un gran escritorio virtual. La pantalla se puede entender como una vista parcial del escritorio. Estas pantallas se pueden organizar arbitrariamente en las propiedades de la pantalla de acuerdo con la ubicación física de la pantalla. Si el monitor se organiza de manera irregular, algunas partes del escritorio virtual pueden no mostrarse en ninguno de los monitor. Para no hacer que un formulario aparezca entre dos monitores, Windows usa una pantalla como monitor principal. Cuando se inicia la computadora, el cuadro de diálogo de inicio de sesión se muestra en el monitor principal. La mayoría de las pantallas de inicio del programa se mostrarán en el monitor principal.
Según la introducción anterior, no es difícil encontrar varios conceptos importantes: escritorio, monitor, monitor principal, etc. Primero, primero debemos descubrir estos conceptos y su relación anterior. Esta es la clave para dominar el método de desarrollo de la aplicación múltiple. Una vez que comprenda estos conceptos, las otras partes serán muy fáciles de entender.
Un escritorio en realidad se refiere al área lógica que Windows puede mostrar. De hecho, se puede mostrar un formulario fuera del escritorio. Sin embargo, esto no significa que todas las partes del escritorio se mostrarán en un determinado monitor (la razón es como se menciona anteriormente);
Un escritorio es un área rectangular que describe el tamaño del escritorio por sus coordenadas de vértice (arriba, izquierda) y ancho y altura. ¿Por qué todavía necesitas coordenadas de vértices? Porque las coordenadas de vértice no se dan por sentado (0,0). Entonces, ¿dónde está (0,0)? Es una historia larga, así que primero revisemos el concepto mencionado hace ahora: el monitor principal. Windows quiere que el programa general se muestre en el monitor principal al principio, porque las personas están acostumbradas a prestar atención a un monitor más cercano a ellos. Windows no puede obligar a los usuarios a usar el monitor más a la izquierda como el monitor principal, de modo que las aplicaciones deben preocuparse por los cálculos para mostrarse en el monitor principal. Sin embargo, la mayoría de los usuarios solo tienen un monitor (dos monitores ocupan demasiado espacio), y las aplicaciones comunes no quieren gastar mucho esfuerzo para calcular dónde está el monitor principal y dónde deben mostrarse. Por lo tanto, Windows propone una solución razonable: use las coordenadas de vértices de la pantalla principal como el origen del sistema de coordenadas. De esta manera, los programas ordinarios deben considerar los problemas en un entorno de monitor único.
El monitor es una vista parcial del escritorio. Es como mirar el paisaje fuera de la ventana a través de la ventana, parado frente a diferentes ventanas, puede ver diferentes imágenes. Del mismo modo, la pantalla también es un área rectangular, y sus dimensiones también pueden describirse mediante coordenadas de vértices (arriba, izquierda) y ancho y altura. Las coordenadas de vértices son relativas al origen del sistema de coordenadas de escritorio, es decir, a los vértices de la pantalla principal.
El concepto de un espacio de trabajo es relativamente simple.
Windows proporciona un conjunto de API para el desarrollo de aplicaciones múltiples. VCL encapsula estas API y las integra en todo el marco de manera muy natural, lo que hace que sea muy fácil desarrollar aplicaciones de múltiples muestras. El siguiente es un contenido relacionado.
El VCL más familiar es probablemente tcustomform, que es la clase base de todas las formas. La propiedad de posición de TCustomForm se utiliza para establecer la posición real del formulario. de la pantalla principal; Si esta propiedad se establece en PodeskTopCenter y el programa se ejecuta en un sistema con múltiples monitores, entonces esta ventana se mostrará entre los dos monitores, causando problemas innecesarios al usuario. Por lo tanto, incluso si nuestro programa no está diseñado para múltiples muestras, este valor debe manejarse cuidadosamente. Otra propiedad es default Monitor, que tiene una función similar a la posición, que determina qué monitoreo se muestra inicialmente la ventana. Tiene cuatro valores alternativos: dmdesktop, dmprimary, dmmainform y dmactiveform. Sus significados son los siguientes:
Valor | Significado |
dmdesktop | Sin tratamiento especial |
dmprimario | Muestre el formulario en el primer monitor. Esta es otra trampa, literalmente el monitor principal, y de hecho se refiere a la pantalla. Monitor Monitor [0]. |
dMMAINFORM | Muestre el formulario al monitor donde se encuentra el formulario principal |
dMactiveForm | Muestre el formulario al monitor donde se encuentra el formulario activo en el escritorio |
TCustomForm también tiene un monitor de propiedad común de solo lectura (sin publicado), que proporciona una referencia para acceder a la instancia de visualización donde se encuentra el formulario.
Entonces, ¿cómo se mueve el formulario entre diferentes pantallas? Esto no es difícil, probablemente también lo pensaste. Aquí hay dos métodos:
Primero, puede configurar la parte superior e izquierda de tcustomform para mostrar el formulario en cualquier parte del escritorio. Como se mencionó anteriormente, el escritorio está formado por todos los monitores. Tienen un sistema de coordenadas común, por lo que la posición de la forma puede determinarse en función de la posición lógica de la pantalla. La pregunta ahora es cómo obtener la posición y el tamaño lógicos de cada monitor, que se introducirá más adelante.
En segundo lugar, puede llamar al método de TCustomform de forma retenida para mostrar completamente el formulario a la pantalla especificada. Este método se puede utilizar para evitar que la ventana muestre una parte de cada uno de los dos monitores.
Acabamos de hacer una pregunta: cómo obtener la posición y el tamaño lógicos de cada monitor. Para responder a esta pregunta, necesitamos introducir otra categoría: TScreen y Tmonitor.
TSCREEN describe alguna información relacionada con los dispositivos de visualización, y nos preocupamos principalmente la información relacionada con la posición lógica y el tamaño de la pantalla. Se pueden encontrar otros aspectos en la documentación de Delphi. Cuando el programa se está ejecutando, VCL crea automáticamente una instancia de TSCREEN, una variable global, por lo que generalmente el programa no necesita instanciar TSCREEN.
TScreen tiene un conjunto de propiedades formadas como escritorio*, que describen el tamaño de todo el escritorio y las coordenadas de cada vértice. También hay una serie de propiedades que son de gran importancia para el desarrollo de aplicaciones de múltiples monitores: monitoreo y monitores. A través de estas dos propiedades, podemos enumerar todas las instancias de los monitores (tmonitores) en el sistema.
Entre las muchas propiedades de TScreen, encontraremos las dos propiedades: altura y ancho. Sea especialmente cauteloso de no referirse al tamaño de todo el escritorio, sino a la altura y al ancho de la pantalla principal. Esto es muy fácil hacer que las personas se sientan ilusas porque no pueden pensar en el tamaño de todo el escritorio. Del mismo modo, hay un conjunto de propiedades formadas como WorkArea*, que describen el tamaño del área de trabajo de la pantalla principal y las coordenadas de cada vértice. ¿Crees que falta algo? ¿Por qué no se obtienen las propiedades de la posición relativa del monitor principal? La razón es como se mencionó anteriormente: Windows usa la esquina superior izquierda del monitor principal como el origen del sistema de coordenadas, por lo que la posición relativa del monitor principal debe ser (0, 0).
Además de estas propiedades, también introduciremos tres funciones miembros de TSCREEN: monitor de punto de vista, monitorear y monitorear deMwindow. Como su nombre lo indica, son casos de la pantalla donde se encuentran una coordenada, un área determinada y una cierta ventana. También se puede usar en el desarrollo real.
Lo mejor, echemos un vistazo a la clase Tmonitor. Encapsula las propiedades relevantes de la pantalla física, todas de solo lectura. La siguiente tabla describe brevemente el significado de estas propiedades, que son muy útiles para escribir aplicaciones múltiples de visualización:
propiedad | ilustrar |
Manejar | Obtenga el mango de Windows de este monitor |
Monitornum | Obtenga el número de monitor |
Primario | Obtiene si el monitor es el monitor principal. Y el primario con solo un monitor es verdadero. |
Arriba | Obtenga el límite superior del monitor |
Izquierda | Obtenga el borde izquierdo del monitor |
Altura | Obtenga la altura del monitor |
Ancho | Obtenga el ancho del monitor |
Límite | Obtenga el área de escritorio correspondiente del monitor, que es equivalente a las cuatro propiedades anteriores |
Workarect | Obtenga el área correspondiente al escritorio del espacio de trabajo del monitor. |
Después de una comprensión clara de TScreen y TMonitor, los problemas anteriores se resolverán naturalmente. En este punto, este artículo ha cubierto todo el conocimiento necesario para desarrollar aplicaciones de muestra múltiples. Creo que puede usar este conocimiento para desarrollar productos de software muy prácticos.
Apéndice: puede descargar una demostración para ayudar a comprender este artículo.