On Drag Over
|Code||Pode ser chamado por||Definição|
|21||4D Write Pro area - Button - Button Grid - Check Box - Dropdown list - Hierarchical List - Input - List Box - List Box Column - Picture Button - Picture Pop up menu - Plug-in Area - Progress Indicators - Radio Button - Ruler - Spinner - Splitter - Stepper - Tab control||Data could be dropped onto an object|
On Drag Over event is repeatedly sent to the destination object when the mouse pointer is moved over the object. Em resposta a este evento, normalmente:
- Get the data and signatures found in the pasteboard (via the
GET PASTEBOARD DATAcommand).
- Depending on the nature and type of data in the pasteboard, you accept or reject the drag and drop.
To accept the drag, the destination object method must return 0 (zero), so you write
$0:=0. To reject the drag, the object method must return -1 (minus one), so you write
$0:=-1. During an
On Drag Over event, 4D treats the object method as a function. If no result is returned, 4D assumes that the drag is accepted.
If you accept the drag, the destination object is highlighted. If you reject the drag, the destination is not highlighted. Accepting the drag does not mean that the dragged data is going to be inserted into the destination object. It only means that if the mouse button was released at this point, the destination object would accept the dragged data and the
On Drop event would be fired.
If you do not process the
On Drag Over event for a droppable object, that object will be highlighted for all drag over operations, no matter what the nature and type of the dragged data.
On Drag Over event is the means by which you control the first phase of a drag-and-drop operation. Not only can you test whether the dragged data is of a type compatible with the destination object, and then accept or reject the drag; you can simultaneously notify the user of this fact, because 4D highlights (or not) the destination object, based on your decision.
The code handling an
On Drag Over event should be short and execute quickly, because that event is sent repeatedly to the current destination object, due to the movements of the mouse.