home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Programming Tool Box
/
SIMS_2.iso
/
vb_code1
/
movetext
/
movtxt.frm
(
.txt
)
next >
Wrap
Visual Basic Form
|
1991-07-08
|
11KB
|
235 lines
Form1
DragDrop Demonstration Program
Form1
Picture4
Picture4
Picture1
Picture1
Text1
Text1
Text1
Picture2
Picture2
Text2
Text2
Text2
Picture3
Picture3
Text3
Text3
Text3
Command1
This Button Does Nothing
Label1
NUse The Grey Box At The Left Of The Text Control To DragDrop The Text Control.
Form_Clicku
MouseX
Picture1_Click
Picture1_MouseDown
Button|
Shift
MouseYI
Picture1
Widthv
Text1
Form_DragDrop
Source
TextOffset
Text2_Change#
Text2_DragOverk
State
MousePointer@
Text2_DragDropp
DropIt
WhichOne
Action
Text1_Change
Picture1_DragOverO
Picture2_Click
Picture2_DragOver
Picture1_DragDrop,
Picture2_DragDrop
Picture2_MouseDown<
Picture2R
Text2
Picture2_MouseUp
Text1_DragDropy
Text1_DragOver
Picture3
Text3
False
Visible
Label1_Click
SaveWidth
Form_DragOver'
Form_DragDrop1
TextC
Overlapp
Cancel
CheckIt
Height
DestRight
DestBot
Form1c
Picture4
Picture4_Click
Picture4_DragDrop
XLeft
XRight
YLeft
Check1
Check2
Picture3_Click
Picture3_DragDrop
Picture3_MouseDown
Text3_Change
Text3_DragDropF
Command1
Command1_ClickY
Command1_DragDrop
Label1_DragDrop
Label1
@ Form_Load
CurrentX
CurrentY
DRAGDROP DEMONSTRATION PROGRAMO
Keith Funk (CIS ID 72240, 2020)
Rev. 1.0 July, 1991
This program demonstrates a way to use a Picture Controll
to initiate what appears to be the dragging of a Text
Control. Some such method is required because Textr
Controls cannot in themselves be DragDropped since they
don't have a MouseDown Event associated with them..
In addition, it shows some code that prevents a control
from being dropped on top of another control. T
The program works like this. The user press the mouse
over a picture box (say Picture1). Picture1_MouseDown
saves the current cursor location then expands the widthh
of the picture so that it encompasses the text box to
its right (the one the user wants to drag). When he e
begins dragging, it *looks* like he is actually dragging
the text box. MouseDown also initiates dragging.d
Every control -and- the form can react to a Drop Event.
If a control detects a DragDrop, it converts the cursor
X/Y co-ords (which are relative to the top, left of the
control) so that they are relative to the top, left off
the form and then Calls the Form's DragDrop Event..
The form's DragDrop Event calls the Overlap function to
to check if any part of the dragged control covers anyy
part of another control. It then Calls the Sub DropIt
and either tells it to cancel the drag because of ann
overlap or to move the picture control and its associated
text control to the new location if there is no overlap..
There is one exception to a control not being allowed too
overlap another control. The user is allowed to dragg
a control and drop it on top of itself. This lets him
make small adjustments to the controls position.s
Sub DropIt resets the picture control's width back to its
original width and then either exits if the drag is m
cancelled or uses the Move command to move the picturer
box and text box to the new location.
A note about the Const TextOffset. The picture controls
used for dragging where created with a width of 200
twips. Their associated text controls were placed soo
that they overlap the picture controls by 20 twips.
Thus, the offset is 180 twips. This was done so thatt
only a single vertical line separates the two controls.
The large picture control, the label control and thee
command button are included simply to demonstrate the
code that prevents overlapping controls..
==> Location of Mouse Pointer at start of drag drop.
Values are relative to the top, left corner
of the control on which the mouse was pressed.o
==> Distance between the left edge of a pictured
control and the left edge of its associated
text control.
Picture1_MouseDown
==> Save the current location of the cursor.
==> Expand the picture control to encompass itss
associated text control, so it looks to
the user like he is dragging the text control.o
==> Initiate dragging.
Text2_DragDrop
DropIt
This routine is called by Form1_DragDrop. It shrinks the
picture control back to its original width. If the
requested Action is "OK" then it Moves the picture control
and its associated text control to the new loaction.
If the Action is "Cancel", the Move is not performed..
Picture1&
Cancel
==> Put the top, left corner of theh
control in the same position relative
to the cursor as it was before the move.s
Picture2&
Cancel
Picture3&
Cancel
Picture1_DragDrop
Picture2_DragDrop
Picture2_MouseDown
Text1_DragDrop
Form_DragDrop
The DragDrop Procs for *all* controls call this routine.
Before doing so, these Procs convert their Mouse X/Y
co-ords so that they are relative to the top, left
corner of the *form*.a
This routine calls the Overlap function for each control
on the form to see if the control being moved overlaps
the control. If it does, the DragDrop is cancelled. AA
special case is the text controls that can be DragDropped.
They can be dropped on themselves.
This routine then calls the routine DropIt which performss
the Move..
Cancel
Cancel
Cancel
Cancel
Cancel
Cancel
==> Don't check for overlap if the Source controlh
is the picture control associated with thet
destination text control. That is, let thee
user DragDrop a control on itself.
Picture1
Cancel
Picture2
Cancel
Picture3
Cancel
Overlap
This function checks if any part of the Source control
(the one being DragDropped) overlaps any part of another
control. If it does, then the function returns True.
Otherwise it returns False..
==> Allow a picture to be dropped on itself.
==> Top left and top right of the Source control.-
==> Check if the top edge of source intersects the
left edge of dest.e
=> top left of Source.
- Check if the top,left corner of the source isu
inside the dest.h
- Check if the bottom edge of source intersectse
the left edge of dest.o
- Check if the bottom,left corner of the sourcet
is inside the dest.
==> This routine determine if two lines interest.e
==> This routine checks if a point is inside a rectangle.
Picture4_DragDrop
Cancel#
Picture3_DragDrop
Picture3_MouseDown
Text3_DragDrop
Command1_DragDrop
Label1_DragDrop
==> X + Label1.Left and Y + Label1.Top are used to
convert the cursor location from being relative
to the control's top, left corner to being
relative to the form's top, left corner because
that's the X/Y that the Move command (see DropItD
Sub) requires.
Form_Load
==> Let the user know what the square at the top,
right of the form is.
Picture Control"u