drag_region1T_drag_region1DragRegion1DragRegion1 (Operator)
Name
drag_region1T_drag_region1DragRegion1DragRegion1
— Interaktives Verschieben einer Region.
Warnung
Dieser Operator kann nicht in HDevelop-Grafikfenstern verwendet werden, die
mit dev_open_window
geöffnet wurden.
Signatur
Beschreibung
drag_region1drag_region1DragRegion1DragRegion1DragRegion1
dient dazu, die Region mit der Maus auf dem
Bildschirm zu verschieben.
Nach dem Aufruf von drag_region1drag_region1DragRegion1DragRegion1DragRegion1
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_drawset_drawSetDrawSetDrawSetDraw
) 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_region1drag_region1DragRegion1DragRegion1DragRegion1
beendet.
Unter macOS kann drag_region1drag_region1DragRegion1DragRegion1DragRegion1
auch durch Drücken der
Escape-Taste beendet werden.
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_imageaffine_trans_imageAffineTransImageAffineTransImageAffineTransImage
verschoben werden.
Achtung
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.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
SourceRegionSourceRegionSourceRegionSourceRegionsourceRegion
(input_object) region-array →
objectHRegionHRegionHobject
Zu verschiebende Regionen.
DestinationRegionDestinationRegionDestinationRegionDestinationRegiondestinationRegion
(output_object) region-array →
objectHRegionHRegionHobject *
Verschobene Regionen.
WindowHandleWindowHandleWindowHandleWindowHandlewindowHandle
(input_control) window →
HWindow, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Fenster-Handle.
Beispiel (HDevelop)
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)
Beispiel (C)
draw_region(&Obj,WindowHandle);
drag_region1(Obj,&New,WindowHandle);
disp_region(New,WindowHandle);
Beispiel (HDevelop)
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)
Beispiel (HDevelop)
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)
Beispiel (HDevelop)
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)
Ergebnis
drag_region1drag_region1DragRegion1DragRegion1DragRegion1
liefert den Wert 2 (H_MSG_TRUE), falls eine Region eingegeben
wird, das Fenster gültig ist und der benötigte Zeichenmodus
(siehe set_insertset_insertSetInsertSetInsertSetInsert
) verfügbar ist.
Ansonsten wird eine Fehlerbehandlung durchgeführt.
Das Verhalten bei einer leeren Eingabe kann mit
set_system(::'no_object_result',<Result>:)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)
bestimmt werden.
Vorgänger
open_windowopen_windowOpenWindowOpenWindowOpenWindow
Nachfolger
reduce_domainreduce_domainReduceDomainReduceDomainReduceDomain
,
disp_regiondisp_regionDispRegionDispRegionDispRegion
,
set_coloredset_coloredSetColoredSetColoredSetColored
,
set_line_widthset_line_widthSetLineWidthSetLineWidthSetLineWidth
,
set_drawset_drawSetDrawSetDrawSetDraw
,
set_insertset_insertSetInsertSetInsertSetInsert
Alternativen
get_mpositionget_mpositionGetMpositionGetMpositionGetMposition
,
move_regionmove_regionMoveRegionMoveRegionMoveRegion
Siehe auch
set_insertset_insertSetInsertSetInsertSetInsert
,
set_drawset_drawSetDrawSetDrawSetDraw
,
affine_trans_imageaffine_trans_imageAffineTransImageAffineTransImageAffineTransImage
Modul
Foundation