Drag PowerScript function
Description
Starts or ends the dragging of a control.
Controls
All controls except drawing objects (Lines, Ovals, Rectangles,
and Rounded Rectangles)
Syntax
control.Drag ( dragmode )
|
Argument |
Description |
|---|---|
|
control |
The name of the control you want to drag |
|
dragmode |
A value of the DragMode datatype indicating
|
Return Values
Integer. For all controls except OLE
controls, returns 1 if it succeeds and –1 if you try to
nest drag events or try to cancel the drag when control is
not in drag mode. The return value is usually not used.
For OLE controls, returns the following values:
-
2 Object was
moved -
1 Drag was canceled
-
0 Drag succeeded
-
-1 Control is empty
-
-9 Unspecified error
If any argument’s value is null, Drag returns null.
Usage
To see the list of draggable controls, open the Browser. All
the objects in the hierarchy below dragobject are draggable.
If you set the control’s DragAuto property to true,
PowerBuilder automatically puts the control in drag mode when the
user clicks it. The user must hold the mouse button down to drag.
When you use Drag(Begin!) in a control’s
Clicked event to manually put the control in drag mode, the user
can drag the control by moving the mouse without holding down the
mouse button. Clicking the left mouse button ends the drag. CANCEL!
and END! are required only if you want to end
the drag without requiring the user to click the left mouse button.
Dragging DataWindow controls
The Clicked event of a DataWindow control occurs when the
user presses the mouse button, not when the mouse button is released.
If you place Drag(Begin!) in a DataWindow control’s
Clicked event, releasing the mouse button ends the drag. To achieve
the same behavior as with other controls, define a user-defined
event for the DataWindow control called lbuttonup and map it to
the pbm_lbuttonup event ID. Then place
the following code in the lbuttonup event script (ib_dragflag is
a boolean instance variable):
IF NOT ib_dragflag THEN
this.Drag(Begin!)
ib_dragflag = TRUE
ELSE
ib_dragflag = FALSE
END IF
To make something happen when the user drags a control onto
a target object, write scripts for one or more of the target’s
drag events (DragDrop, DragEnter, DragLeave, and DragWithin).
Examples
This statement puts sle_emp into
drag mode:
sle_emp.Drag(Begin!)