Windows kann mehrere Monitore in virtuelle Desktops zuordnen, sodass wir damit einfach zu Arbeitenanwendungen entwerfen können. Zum Beispiel nutzt PowerPoint die Vorteile von Doppelmonitoren (die meisten Laptops unterstützen sie). . Wie entwickeln wir also eine solche Anwendung? In diesem Artikel werden Sie angezeigt, wenn Sie Anwendungen mithilfe mehrerer Monitore mit Delphi implementieren.
Windows unterstützt auch die Klonanzanzeigemethoden und jeder Monitor gibt den gleichen Inhalt aus, was für einige Anwendungen sinnvoll ist. Obwohl einige Grafikkarten auch zwei Monitore unterstützen, sind sie nicht wirklich multi-Displays, sondern virtuelle hochauflösende Display-Modi (wie 2048 × 768 oder 1024 × 1536), wodurch der Bildschirm über die Grafikkarte überlegen ist. Keiner dieser beiden Anzeigemodi werden Zhongdian in diesem Artikel eingeführt, und sie sind auch sehr einfach, sodass wir sie nicht wieder wiederholen werden.
Windows unterstützt bis zu 10 Monitore und Windows -Karten alle Monitore zu einem großen virtuellen Desktop. Die Anzeige kann als teilweise Ansicht des Desktops verstanden werden. Diese Displays können in den Displayeigenschaften entsprechend der physischen Position des Displays willkürlich angeordnet werden. Wenn der Monitor unregelmäßig angeordnet ist, werden einige Teile des virtuellen Desktops möglicherweise nicht auf beiden Monitors angezeigt. Um kein Formular zwischen zwei Monitoren erscheinen zu lassen, verwendet Windows eine Anzeige als Hauptmonitor. Wenn der Computer gestartet wird, wird das Dialogfeld Anmeldung im Hauptmonitor angezeigt. Die meisten Programm -Start -Displays werden im Hauptmonitor angezeigt.
Nach der obigen Einführung ist es nicht schwierig, mehrere wichtige Konzepte zu finden: Desktop, Monitor, Hauptmonitor usw. Erstens müssen wir zuerst diese Konzepte und ihre frühere Beziehung herausfinden. Dies ist der Schlüssel zur Beherrschung der Entwicklungsmethode der Multidisplay-Anwendung. Sobald Sie diese Konzepte verstanden haben, sind die anderen Teile sehr leicht zu verstehen.
Ein Desktop bezieht sich tatsächlich auf den logischen Bereich, den Windows anzeigen kann. Tatsächlich kann ein Formular außerhalb des Desktops angezeigt werden. Dies bedeutet jedoch nicht, dass alle Teile des Desktops auf einem bestimmten Monitor angezeigt werden (der Grund ist wie bereits erwähnt).
Ein Desktop ist ein rechteckiger Bereich, der die Größe des Desktops durch seine Scheitelpunktkoordinaten (oben, links) sowie die Breite und Höhe beschreibt. Warum brauchen Sie noch Scheitelpunktkoordinaten? Weil die Scheitelpunktkoordinaten nicht als selbstverständlich angesehen werden (0,0). Wo ist (0,0)? Es ist eine lange Geschichte. Lassen Sie uns zunächst das gerade erwähnte Konzept überprüfen - den Hauptmonitor. Windows möchte, dass das allgemeine Programm am Anfang auf dem Hauptmonitor angezeigt wird, da Menschen es gewohnt sind, auf einen ihnen am nächsten gelegenen Monitor zu achten. Windows kann Benutzer nicht zwingen, den meist linken Monitor als Hauptmonitor zu verwenden, sodass sich die Anwendungen um Berechnungen sorgen müssen, um sich auf dem Hauptmonitor anzuzeigen. Die meisten Benutzer haben jedoch nur einen Monitor (zwei Monitore nehmen zu viel Platz ein) und gewöhnliche Anwendungen möchten nicht viel Mühe geben, um zu berechnen, wo sich der Hauptmonitor befindet und wo sie angezeigt werden sollen. Windows schlägt also eine vernünftige Lösung vor: Verwenden Sie die Scheitelpunktkoordinaten der Hauptanzeige als Ursprung des Koordinatensystems. Auf diese Weise müssen gewöhnliche Programme Probleme in einer einzelnen Monitorumgebung berücksichtigen.
Der Monitor ist eine teilweise Ansicht des Desktops. Es ist so, als würde man sich die Kulissen außerhalb des Fensters durch das Fenster ansehen und vor verschiedenen Fenstern stehen. Sie können verschiedene Bilder sehen. In ähnlicher Weise ist die Anzeige auch ein rechteckiger Bereich, und seine Abmessungen können auch durch Scheitelpunktkoordinaten (oben, links) sowie Breite und Höhe beschrieben werden. Vertex -Koordinaten sind relativ zum Ursprung des Desktop -Koordinatensystems, dh zu den Eckpunkten der Hauptanzeige.
Das Konzept eines Arbeitsbereichs ist relativ einfach.
Windows bietet eine Reihe von APIs für die Entwicklung von Multi-Display-Anwendungen. VCL fasst diese APIs zusammen und integriert sie ganz natürlich in das gesamte Framework, sodass es sehr einfach ist, Multidisplay-Anwendungen zu entwickeln. Das Folgende ist ein verwandter Inhalt.
Die bekannteste VCL ist wahrscheinlich TcustomForm, die Basisklasse aller Formen. Die Position von TCustomForm wird verwendet, um die tatsächliche Position des Formulars zu setzen. von der Hauptanzeige; Wenn diese Eigenschaft auf podesktopCenter eingestellt ist und das Programm auf einem System mit mehreren Monitoren ausgeführt wird, wird dieses Fenster zwischen den beiden Monitoren angezeigt, was dem Benutzer unnötige Probleme verursacht. Selbst wenn unser Programm nicht für Multi-Display ausgelegt ist, sollte dieser Wert sorgfältig behandelt werden. Eine andere Eigenschaft ist DefaultMonitor, die eine ähnliche Funktion wie die Position hat, die feststellt, welcher Überwachung das Fenster ursprünglich angezeigt wird. Es hat vier alternative Werte: dmdesktop, dmprimary, dmmainform und dmactiveForm. Ihre Bedeutungen sind wie folgt:
Wert | Bedeutung |
dmdesktop | Keine Sonderbehandlung |
dmprimary | Zeigen Sie das Formular im ersten Monitor an. Dies ist eine weitere Falle, buchstäblich der Hauptmonitor und bezieht sich tatsächlich auf den Bildschirm.Monitor [0] Monitor. |
dmmainform | Zeigen Sie das Formular auf den Monitor an, in dem sich das Hauptformular befindet |
dmactiveForm | Zeigen Sie das Formular zum Monitor, in dem sich das aktive Formular auf dem Desktop befindet |
TCustomForm verfügt außerdem über eine schreibgeschützte Eigenschaft (ohne veröffentlicht), die einen Verweis für den Zugriff auf die Anzeigeinstanz bietet, in der sich das Formular befindet.
Wie bewegen Sie die Form zwischen verschiedenen Displays? Das ist nicht schwierig, wahrscheinlich haben Sie auch darüber nachgedacht. Hier sind zwei Methoden:
Zunächst können Sie die obere und links von tcustomform einstellen, um das Formular überall auf dem Desktop anzuzeigen. Wie bereits erwähnt, besteht der Desktop aus allen Monitoren. Sie haben ein gemeinsames Koordinatensystem, sodass die Position der Form basierend auf der logischen Position der Anzeige bestimmt werden kann. Die Frage ist nun, wie Sie die logische Position und Größe jedes Monitors erhalten, der später eingeführt wird.
Zweitens können Sie die maßgeschneiderte Methode von TCustomform aufrufen, um das Formular vollständig auf die angegebene Anzeige anzuzeigen. Diese Methode kann verwendet werden, um zu verhindern, dass das Fenster einen Teil jeder der beiden Monitore anzeigt.
Wir haben gerade eine Frage gestellt: So erhalten Sie die logische Position und Größe jedes Monitors. Um diese Frage zu beantworten, müssen wir eine andere Kategorie vorstellen: Tscreen und TMonitor.
Tscreen beschreibt einige Informationen zu Anzeigegeräten, und wir befassen uns hauptsächlich mit Informationen zur logischen Position und Größe der Anzeige. Andere Aspekte finden Sie in Delphis Dokumentation. Wenn das Programm ausgeführt wird, erstellt VCL automatisch eine Instanz von TSCreen - eine globale Variable, sodass das Programm normalerweise nicht tscreen instanziiert muss.
Tscreen verfügt über eine Reihe von Eigenschaften, die wie Desktop*geformt sind, die die Größe des gesamten Desktops und die Koordinaten jedes Scheitelpunkts beschreiben. Es gibt auch eine Reihe von Eigenschaften, die für die Entwicklung von Multi-Monitor-Anwendungen von großer Bedeutung sind: Monitorcount und Monitore. Durch diese beiden Eigenschaften können wir alle Fälle der Monitore (Tmonitoren) im System aufzählen.
Unter den vielen Eigenschaften von TSCreen finden wir die beiden Eigenschaften: Höhe und Breite. Seien Sie besonders vorsichtig, wenn Sie sich nicht auf die Größe des gesamten Desktops beziehen, sondern auf die Höhe und Breite der Hauptanzeige. Dies ist sehr einfach, um die Menschen illusioniert zu machen, dass sie sich nicht an die Größe des gesamten Desktops vorstellen können. In ähnlicher Weise gibt es eine Reihe von Eigenschaften, die wie Workkugos*geformt sind, die die Größe des Arbeitsbereichs der Hauptanzeige und die Koordinaten jedes Scheitelpunkts beschreiben. Glaubst du, etwas fehlt? Warum werden die Eigenschaften der relativen Position des Hauptmonitors nicht bekommen? Der Grund ist wie zuvor erwähnt: Windows verwendet die obere linke Ecke des Hauptmonitors als Ursprung des Koordinatensystems, sodass die relative Position des Hauptmonitors (0, 0) sein muss.
Zusätzlich zu diesen Eigenschaften werden wir auch drei Mitgliederfunktionen von TSCreen einführen: MonitorFrompoint, MonitorFromRect und MonitorFromWindow. Wie der Name schon sagt, sind sie Instanzen der Anzeige, in der sich eine Koordinate, ein bestimmter Bereich und ein bestimmtes Fenster befinden. Es kann auch in der tatsächlichen Entwicklung verwendet werden.
Am besten schauen wir uns die TMonitor -Klasse an. Es fasst die relevanten Eigenschaften der physischen Anzeige zusammen-alle schreibgeschützte. Die folgende Tabelle beschreibt kurz die Bedeutung dieser Eigenschaften, die für das Schreiben von multidisplay-Anwendungen sehr nützlich sind:
Eigentum | veranschaulichen |
Handhaben | Holen Sie sich den Windows -Handle dieses Monitors |
Monitornum | Holen Sie sich die Monitornummer |
Primär | Gilt, ob der Monitor der Hauptmonitor ist. Und die primäre mit nur einem Monitor ist wahr. |
Spitze | Holen Sie sich die Obergrenze des Monitors |
Links | Holen Sie sich den linken Rand des Monitors |
Höhe | Holen Sie sich die Höhe des Monitors |
Breite | Holen Sie sich die Breite des Monitors |
Grenzen | Holen Sie sich den entsprechenden Desktop -Bereich des Monitors, der den oben genannten vier Eigenschaften entspricht |
Workarearect | Holen Sie sich den Bereich, der dem Desktop des Arbeitsbereichs des Monitors entspricht. |
Nach einem klaren Verständnis von Tscreen und Tmonitor werden die vorherigen Probleme natürlich gelöst. Zu diesem Zeitpunkt hat dieser Artikel alle Kenntnisse behandelt, die für die Entwicklung von Multi-Display-Anwendungen erforderlich sind. Ich glaube, Sie können dieses Wissen nutzen, um sehr praktische Softwareprodukte zu entwickeln.
Anhang: Sie können eine Demo herunterladen, um diesen Artikel zu verstehen.