SelectDisplay(id[, noactivate])
id
angegebene Display zum aktuellen
Ausgabeziel. Das aktuelle Display ist das Display, auf welches
nun alle Befehle von Hollywoods Grafikbibliothek Einfluss nehmen.
Darüber hinaus arbeiten mehrere andere Befehle mit dem aktuellen
Display, zum Beispiel wird SetPointer() die Maus des aktuell
aktiven Display ändern.
Dieses optionale Argument NoActivate
ist standardmäßig auf
False
gesetzt, womit das angegebene Display zum aktuellen Display
und gleichzeitig aktiviert wird.
Stellen Sie sicher, dass Sie den Unterschied zwischen dem aktuellen und dem aktiven Display verstehen: Das aktuelle Display muss nicht unbedingt das aktive Display sein und umgekehrt. Das aktive Display hat nichts mit Hollywood selbst zu tun. Es bedeutet nur, dass der Window-Manager des Host-Betriebssystem das Display als aktiv markieret. Aktive Fenster werden auch die Tastaturfokus erhalten und auf einigen Betriebssystemen sind aktive Fenster immer nach vorne gesetzt.
Auf der anderen Seite ist das aktuelle Display das Display, in welches Befehle von Hollywood ihre Grafiken zeichnen können. So ist es auch möglich, ein inaktives Display zum aktuellen Display zu erklären.
Daher sollten Sie im Auge behalten, dass dieser Befehl das angegebene Display zum aktuellen Display macht. Optional ist es aber möglich, dieses Display auch zu aktivieren. Wenn Sie aber das Display nur aktivieren möchten, ohne dass es das aktuelle wird, benutzen Sie stattdessen den Befehl ActivateDisplay().
Beachten Sie auch, dass Hollywood immer ein aktuelles Display
erfordert. Es ist nicht möglich, ein Hollywoodskript zu erstellen,
ohne dass ein aktuelles Display vorhanden wäre. Sie können
jedoch die Illusion eines Hollywoodskripts ohne aktuelles Display
erzeugen, indem Sie mit dem Befehl CloseDisplay() alle Displays
schließen (oder mit dem Hidden
-Tag der @DISPLAY-Anweisung
alle Fenster verbergen). Es wird dann so erscheinen, als ob
es kein aktuelles Display hat. Das ist aber eine falsche Annahme,
das das aktuelle Display einfach nicht sichtbar ist. Selbst
wenn alle Displays geschlossen sind, werden Sie noch in der
Lage sein, Befehle wie DisplayBrush() aufzurufen. Sie
können immer noch ihre Grafiken auf das Display zeichnen,
auch wenn es momentan nicht sichtbar ist. Deshalb können Sie
SelectDisplay()
auch auf geschlossene Displays anwenden.
Stellen Sie sicher, dass Sie SelectDisplay()
nicht mit den
ähnlich genannten Befehlen wie SelectBrush(), SelectBGPic(),
SelectAnim(), SelectMask(), und SelectAlphaChannel() verwechseln.
All diese Befehle benötigen den Aufruf von EndSelect(), wenn
Sie mit ihnen fertig sind, aber SelectDisplay()
hat diese Anforderung
nicht. SelectDisplay()
funktioniert in der Tat auf eine ganz
andere Art und Weise, so dass Sie nie EndSelect() aufrufen
müssen. Wenn Sie auf das zuvor aktuelle Display zurückkehren
wollen, müssen Sie SelectDisplay()
erneut aufrufen.
Wenn Sie SelectDisplay()
aufrufen, während SelectBrush()
(oder eines der anderen Select... Befehle) aktiv ist, wird
Hollywood intern EndSelect() aufrufen, um zunächst SelectBrush()
zu beenden. Danach wird SelectDisplay()
das aktuelle Display wechseln.
Doppelgepufferte Modi werden durch SelectDisplay()
nicht aufgehoben.
Sie können den Fokus sicher von einem doppeltgepuffertes Display
nehmen, indem Sie SelectDisplay()
verwenden, einige Änderungen in
dem anderen Display erledigen und dann wieder auf das doppeltgepufferte Display
zurück kehren. Doppelgepufferte Modi werden vollständig von
SelectDisplay()
erhalten.
Beachten Sie auch, dass der Befehl OpenDisplay() das
angegebene Display immer automatisch zum aktuellen Display
erklärt, außer Sie benutzen das optionale Argument NoSelect
.
In der Regel müssen Sie SelectDisplay()
überhaupt nicht aufrufen,
wenn Sie OpenDisplay() benutzen. SelectDisplay()
wird nur benötigt,
wenn ein Display bereits geöffnet ist.
True
gesetzt wird das Display nicht
aktiviert (voreingestellt ist False
)