5 |
The LA Fox Developer Newsletter
|
June 1995
|
Drag and Drop
(Con't from page 4)
The first three properties give us a convenient place to store names of cursors; the DragThreshold number will tell us how far the left-clicked mouse needs to move before we know the user wants to Drag- and-Drop; and the MouseX and MouseY properties are just temporary places to put the mouse location information when we need it.
The following code goes into the lNlT method of the form:
This code reads REPORT. DBF and populates the source ListBox (IstSource) for us. It also populates the aReports
array with
the corresponding names of
report files for
each report description.
So that’s it for the form.. .six properties and some INIT code.
An aside...
Although not absolutely necessary, the OK button has a Click event that reads: RELEASE THISFORM. This will close the form and shoot you back to VFP,
the same
as a double-click
in
the control
box
in the upper left corner of the form. I always use a button to close the form unless users have a background with the Macintosh. Now back to the good stuff...
The Drag-and-Drop Source
The Drag-and-Drop source is the object “lstSource”, a ListBox holding the descriptions of system reports. We need to modify three methods in this object.
The DragOver method should read:
|
Remember creating the CanSourcetcon property for the form? This is where we use
it.
Same for
NoDroplcon. This code here changes the
cursor
as
the user moves it out of the ListBox, from an arrow with a box next to it to a cirle & slash
cursor
like those on No Smoking signs.. Impressive stuff
for
so
little work.
Remember creating the Mousex and MouseY properties for the form? We use those now to record the starting position of the mouse when the left mouse button is first pressed.
3. The MouseMove property should read:
Remember adding Draglhreshold as a property for the Form? Remember entering “8” in this property? This code enables Dragging of the selected item from the source ListBox if the user holds down the left mouse button and moves the pointer more than 8 pixels. This gives users a little leeway before the cursor changes, but you could set the DragThreshold property to and number you wish.
So that’s it for the Source.. .only three methods
and
very little code!
The Drag-and-Drop Target(s)
Targets are even easier.. .there are only
two
methods in each target that need our attention.
|
Page 5
|
5 |