drag_region1 — Interaktives Verschieben einer Region.
Dieser Operator kann nicht in HDevelop-Grafikfenstern verwendet werden, die
mit dev_open_window geöffnet wurden.
drag_region1(SourceRegion : DestinationRegion : WindowHandle : )
drag_region1 dient dazu, die Region mit der Maus auf dem
Bildschirm zu verschieben.
Nach dem Aufruf von drag_region1 wird die Region sichtbar, sobald
die linke Maustaste betätigt wird. Es wird dabei nur der Rand der Region
dargestellt. Als Darstellungsmodus wird für die Dauer der Prozedur der
Modus 'not' (siehe set_draw) verwendet.
Der Mauscursor befindet sich während des Verschiebens im Schwerpunkt der
Region.
Wird die Maus mit gedrückter linker Maustaste verschoben, folgt die
dargestellte Region - verzögert - dieser Bewegung. Wird die rechte
Maustaste gedrückt, so wird drag_region1 beendet.
Die Darstellung der Region auf dem Bildschirm verschwindet.
Ausgegeben wird eine Region, die der letzten Position auf dem Bildschirm
entspricht. Es können auch mehrere Regionen auf einmal übergeben werden.
Die Grauwerte können mit dem Operator affine_trans_image
verschoben werden.
Die Grauwerte der Regionen werden nicht verschoben. Da die Eingaberegion verschoben wird, ist nicht sichergestellt, dass die Grauwerte der Ausgaberegionen sinnvoll besetzt sind. Dieser Fall kann eintreten, wenn die Grauwerte der Eingaberegionen nicht das ganze Bild umfassen.
SourceRegion (input_object) region-array → object
Zu verschiebende Regionen.
DestinationRegion (output_object) region-array → object
Verschobene Regionen.
WindowHandle (input_control) window → (handle)
Fenster-Handle.
draw_region(Obj,WindowHandle)
dev_set_color ('green')
drag_region1(Obj,New,WindowHandle)
dev_display(New)
get_region_runs (Obj, Rows1, ColumnBegins1, ColumnEnds1)
get_region_runs (New, Rows2, ColumnBegins2, ColumnEnds2)
Row1 := Rows1[0]
Column1 := ColumnBegins1[0]
Row2 := Rows2[0]
Column2 := ColumnBegins2[0]
dev_set_color ('white')
gen_arrow_contour_xld (Arrow, Row1,Column1,Row2,Column2, 5, 5)
dev_display (Arrow)
drag_region1 liefert den Wert 2 (
H_MSG_TRUE)
, falls eine Region eingegeben
wird und das Fenster gültig ist.
Ansonsten wird eine Fehlerbehandlung durchgeführt.
Das Verhalten bei einer leeren Eingabe kann mit
set_system(::'no_object_result',<Result>:) bestimmt werden.
reduce_domain,
disp_region,
set_colored,
set_line_width,
set_draw
Foundation