dev_open_window — Öffnen eines neuen Grafikfensters.
dev_open_window( : : Row, Column, Width, Height, Background : WindowHandle)
dev_open_window öffnet ein neues Grafikfenster, in dem ikonische
Objekte wie Bilder, Regionen und Linien sowie Text und geometrische
Objekte ausgegeben werden können.
Nach dem Öffnen ist automatisch das neue Grafikfenster aktiv, d.h. dass
alle HDevelop-Ausgabeoperatoren sich auf dieses Grafikfenster beziehen.
Das aktive Grafikfenster erkennt man an der leuchtenden Lampe im
Aktivierungsknopf.
Jedes Grafikfenster wird durch sein WindowHandle
identifiziert. Diese logische Nummer wird in der Titelleiste des
Grafikfensters angezeigt und wird als Eingabeparameter für einige
Operatoren wie disp_image, disp_region,
draw_circle, get_mbutton, write_string
und set_rgb benötigt.
Mithilfe des Schließen-Knopfes im Fensterrahmen, über das
Visualisierungsmenü oder durch Aufruf von dev_close_window
kann das Grafikfenster geschlossen werden.
Das Grafikfenster wird entweder als schwebendes Fenster oder
innerhalb des Canvas-Fensters geöffnet. Sobald das Canvas-Fenster
geöffnet ist, werden alle neuen Grafikfenster automatisch im
Canvas angezeigt. Siehe auch das Kapitel
Organizing Graphics Windows on the Canvas im
„HDevelop User's Guide“.
Bei schwebenden Grafikfenstern kann mit den Parametern
Row und Column die Position des Fensters
eingestellt werden. Sie haben aber noch weitere Möglichkeiten,
diese Position an Ihre Bedürfnisse anzupassen. Eine Möglichkeit
ist, den Bezugspunkt der Fensterposition zu ändern, der
standardmäßig die linke obere Desktopecke ist. Sie können diesen
Bezugspunkt mit der Einstellung Origin of coordinates
ändern. (Bearbeiten ->
Einstellungen ->
Allgemeine Optionen ->
Allgemeine Optionen ->
Origin of coordinates) Außerdem können Sie die über
Window open offset angegebenen Offset-Werte anpassen.
Diese Werte werden zum Zeilen- bzw. zum Spaltenindex addiert.
Siehe auch Menü Edit im
„HDevelop User's Guide“.
Bei Grafikfenstern auf dem Canvas können die Parameter
Row und Column verwendet werden, um die
Grafikfenster relativ zueinander anzuordnen. Eine absolute
Positionierung ist nicht möglich, da der Canvas seine
Grafikfenster zentriert.
Die Hintergrundfarbe des Grafikfensters wird über den Parameter
Background gesetzt. Dieser Parameter ist beim
HALCON-Operator open_window nicht verfügbar. Um das
gleiche Verhalten zu erreichen wie mit dev_open_window
muss vor dem Öffnen des Fensters
set_window_attr(::'background_color',Background:)
aufgerufen werden.
Der sichtbare Bildausschnitt im Grafikfenster (viewport) wird
per Default so eingestellt, dass das aktuelle Bild vollständig
ausgegeben wird und das Fenster dabei vollständig ausgefüllt
wird. Dabei wird der Bildausschnitt entsprechend dieser Vorgabe
automatisch immer dann angepasst, wenn zum ersten Mal nach einem
Programmreset bzw. dem Laden eines neuen Programms ein Bild
ausgegeben wird oder wenn das aktuelle Bild eine andere Bildgröße
als das zuletzt Ausgegebene besitzt. Die Fenstergröße wird dabei
nicht automatisch angepasst, so dass bei unterschiedlichen
Seitenverhältnissen von Bild und Fenster das Bild verzerrt
ausgegeben wird. Dies kann über das Menü Fenstergröße
behoben werden.
Der sichtbare Bildausschnitt kann interaktiv verändert werden.
Entweder durch Drehen des Mausrades, durch Verschieben und Zoomen
in den entsprechenden Modi, über das Menü Bildgröße und
die Zoom Tabkarte des Visualisierungs Parameter
Dialogs, oder mit Hilfe des Operators dev_set_part.
Zum Setzen der Ausgabeparameter des Grafikfensters stehen
verschiedene Möglichkeiten zur Verfügung: das Kontextmenü des
Grafikfensters, das Visualisierungsmenü im Hauptmenü,
der Visualisierungsparameter-Dialog und die
entsprechenden HDevelop-Operatoren wie dev_set_color,
dev_set_line_width, dev_set_draw, usw. In
Abhängigkeit von der Auswahlbox Sofort anwenden werden
die Änderungen unmittelbar auf das zuletzt ausgegebene Bildobjekt
angewendet oder sie gelten erst für alle zukünftigen Objekte. Im
Gegensatz zu den Standard-HALCON-Fensteroperatoren gelten diese
Einstellungen auch für alle Grafikfenster, die danach geöffnet
werden.
Jedes Grafikfenster verwaltet eine Historie mit den
Bildobjekten und
Ausgabeparametern
die ausgegeben bzw. eingestellt wurden nach dem letzten Löschen
des Fensterinhalts oder der Ausgabe eines Bildes mit voller
Domäne. Diese Historie wird beim Neuzeichnen des Grafikfensters
genutzt, um beispielsweise bei einer Änderung der Größe des
Grafikfensters den kompletten Fensterinhalt rekonstruieren zu
können. Andere Bildobjekte, die mit Hilfe von HALCON-Operatoren,
wie disp_image oder disp_region, ausgegeben
wurden, Texte (write_string) und geometrische Objekte
(disp_line, disp_circle, usw.) sind
nicht Bestandteil der Historie und können daher beim
Neuaufbau des Grafikfensters nicht wieder hergestellt werden.
Nur die Bildobjekte (Bilder, Regionen und XLDs), die mit Hilfe
des HDevelop-Operators dev_display oder durch
HDevelop-Aktionen wie Doppelklick auf das entsprechende Icon im
Variablenfenster ausgegeben wurden, sind Teil der Historie.
Durch Drücken des Löschen-Knopfes in der
Werkzeugleiste kann der gesamte Inhalt des Grafikfensters
einschließlich der Historie der ausgegebenen Objekte gelöscht
werden. Die Ausgabeparameter werden dadurch nicht verändert.
Weitere Informationen über das dem HDevelop-Grafikfenster
zugrundeliegende HALCON-Fenster finden sich beim HALCON-Operator
open_window. Für eine detaillierte Beschreibung des
HDevelop-Grafikfensters sei auf den „HDevelop User's Guide“
verwiesen.
Beim Export von HDevelop-Programmen ist zu beachten, dass der für diesen
Operator generierte Code sich anders verhalten kann, als der entsprechende
HALCON-Operator.
Eine detaillierte Beschreibung der Besonderheiten, die beim Export
von grafischen HDevelop-Operatoren zu beachten sind, findet sich im
„HDevelop User's Guide“ im Kapitel Code Export
-> General Aspects of Code Generation
-> Graphics Windows.
Row (input_control) rectangle.origin.y → (integer)
Zeilenindex der linken oberen Ecke.
Defaultwert: 0
Typischer Wertebereich: 0
≤
Row
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Restriktion: Row >= 0
Column (input_control) rectangle.origin.x → (integer)
Spaltenindex der linken oberen Ecke.
Defaultwert: 0
Typischer Wertebereich: 0
≤
Column
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Restriktion: Column >= 0
Width (input_control) rectangle.extent.x → (integer)
Breite des Fensters.
Defaultwert: 512
Typischer Wertebereich: 0
≤
Width
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Restriktion: Width > 0 || Width == -1
Height (input_control) rectangle.extent.y → (integer)
Höhe des Fensters.
Defaultwert: 512
Typischer Wertebereich: 0
≤
Height
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Restriktion: Height > 0 || Height == -1
Background (input_control) integer → (integer / string)
Hintergrundfarbe des neuen Fensters.
Defaultwert: 'black'
WindowHandle (output_control) window → (handle)
Fenster-Handle.
dev_close_window ()
read_image (For5, 'for5')
get_image_size (For5, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (For5)
dev_set_lut ('rainbow')
dev_display (For5)
stop ()
dev_set_lut ('default')
dev_display (For5)
stop ()
dev_set_part (100, 100, 300, 300)
dev_display (For5)
Sind die Parameterwerte korrekt, dann liefert
dev_open_window den Wert TRUE.
Andernfalls wird eine Fehlerbehandlung durchgeführt und ein Fehlercode
zurückgeliefert.
dev_display,
dev_set_lut,
dev_set_color,
dev_set_draw,
dev_set_part
Foundation