TDRAGDROP COMPONENT FOR DELPHI...

HOW TO ORDER ? LOOK AT END OF THIS DOC!

MADE BY : PATRICK PETERS
          GOUDENREGENSTRAAT 18
          7101 KT WINTERSWIJK
          THE NETHERLANDS
          E-MAIL: SOUNDAVM@WXS.NL

DATE    : 12/02/1999

 - THE TDRAGDROP COMPONENT CAN DRAG ITEMS FROM A LISTBOX TO A STRINGGRID OR LISTBOX,
   SIMPLY BY A REGISTRY OF THE SOURCE AND DESTINATION COMPONENTS ON THE FORM IN
   THE DRAGDROP PROPERTIES (MOVE, STAY AND DEST. OBJECTS).
   AFTER EACH SOURCE NAME, YOU HAVE TO PLACE AN ORDER ENTRY, BECAUSE THE
   ALGORITM MUST KNOW THE PLACEMENT ORDER. THIS IS DONE BY SETTING A BRACKET
   WITH THE ORDER ENTRY WITHIN IT.

   NOTE: YOU MAY BEGIN WITH ANY NUMBER BETWEEN 0 AND MAX_DRAGSOURCES FOR THE
         ORDERING INDEX. IN THE EXAMPLE ABOVE, YOU MAY ALSO START LISTBOX 1
         WITH ORDERING INDEX 1 INSTEAD OF INDEX 0. YOU MAY NOT USE DUPLICATE
         ORDERINGINDEXES.

   AFTER REGISTRERING, ADD 3 CODE-LINES FOR 3 METHODS IN THE 1 OF THE SOURCE
   COMPONENTS AND THEN CONNECT ALL OTHER SOURCES AND THE DESTINATION GRID TO THE
   FIRST SOURCE COMPONENT METHODS.

   THESE 3 CODE-LINES MUST BE PLACED INTO THE FOLLOWING 3 EVENTS OF THE
   FIRST SOURCE COMPONENT:
   * ONMOUSEDOWN-EVENT: "INSTANCENAME".STARTDRAGGING(SENDER,BUTTON)
   * ONDRAGOVER-EVENT : ACCEPT:="INSTANCENAME".CHECKDRAGOVERPERMISSION(SENDER,SOURCE);
   * ONDRAGDROP-EVENT : "INSTANCENAME".DROPITEM(SENDER,SOURCE)

   PROPERTIES:
   * ACTIVE : WHEN TRUE, THE DRAGDROP IS ENABLED, OTHERWISE NO DRAGGING
              IS POSSIBLE FOR THE REGISTERED COMPONENTS IN IT.

   * DESTINATIONNAME: CAN BE A TLISTBOX OR A TSTRINGGRID. WHEN YOU ONLY
                      HAVE 1 LISTBOX AS SOURCE USE A TLISTBOX (LESS
                      RESOURCE TO ALLOCATE !). YOU MUST USE A TSTRINGGRID
                      WHEN USING MORE THEN 1 SOURCE. NO INDEXING NEEDED
                      HERE.

   * IGNOREDUPLICATES: IF YOU USE A STAY SOURCE AND A DRAGDROP HAS BEEN
                       EXECUTED AT THE DESTINATION, THE ITEM WILL
                       BE PLACED. BECAUSE THE ITEM IS NOT DELETED FROM
                       THE SOURCE, IT'S POSSIBLE TO DRAG THE ITEM
                       TO THE DESTINATION AGAIN. WHEN SETTING THIS PROPERTY
                       TO TRUE THE TDRAGDROP COMPONENT WILL NOT PLACE
                       THE ITEM AGAIN IN THE DESTINATION (IF PROPERTY
                       IS TRUE, IT WILL !). WHEN DRAGGING BACK TO THE
                       SOURCE THE TDRAGDROP COMPONENT WILL ALWAYS
                       IGNORE DUPLICATES IN THE SOURCES. DEFAULT SET TO TRUE.

   * INITDESTINATION: WHEN TRUE, THE COMPONENT IN 'DESTINATIONNAME' WILL
                      BE CLEARED.

   * SELECTFIRSTITEMS: WHEN TRUE, AFTER A DRAGDROP ALL SOURCES COMPONENTS AND
                       THE DESTINATION COMPONENT WILL THE FIRST ITEM
                       TO BE SELECTED. WHEN FALSE, THE NO SELECTION WILL
                       BE SET IN THE SOURCES AND DESTINATION.

   * SOURCEMOVENAMES: TYPE IN THE 1 OR MORE TLISTBOX NAMES. WHEN THE TOTAL
                      OF SOURCES (SOURCEMOVE NAMES + SOURCESTAY NAMES) IS
                      MORE THAN 1, AN INDEX IS OBLIGATORY. WHEN ONLY 1
                      TLISTBOX NAME IS ENTERED IN TOTAL, NO INDEX IS REQUIRED;
                      JUST FILL IN THE NAME.

                      WHEN USING INDEXES, YOU'RE DETERMING THE WAY THE
                      ITEMS ARE PLACED IN THE TSTRINGGRID. USE BRACKETS FOR
                      EACH INDEX. SEPERATE EACH TLISTBOX WITH A ';'.
                      AFTER A DRAGDROP, THE SELECTED ITEMS WILL BE DELETED.

                      --------------------------------------------
                      EXAMPLE 1:
                      SOURCEMOVENAMES ->  LISTBOX1[1]; LISTBOX2[2]
                      --------------------------------------------
                      EXAMPLE 2:
                      SOURCEMOVENAMES ->  LISTBOX1[3]; LISTBOX2[4]

                      IT NOT NECCESSARY TO START WITH 0 OR 1, JUST
                      GIVE AN ORDERING, BUT DON'T EXCEED THE MAXIMUM
                      OF 5. BUT..FOR EASY READING ALWAYS START WITH 1.
                      IF YOU WANT, CHANGE THE 5 TO ANY VALUE YOU LIKE
                      WHEN IMPLEMENTING COMPLEX # SOURCES FOR DRAGDROP.
                      5 SEEMS FOR ME TO BE PRACTICAL ENOUGH.
                      --------------------------------------------
                      EXAMPLE 3:
                      SOURCEMOVENAMES ->  LISTBOX1


                      NOTE TO EXAMPLE3: WHEN ALSO USING A SOURCESTAY, THIS
                      IS NOT ACCEPTED. YOU HAVE TO USE AN ORDERING INDEX,
                      BECAUSE THE TOTAL IS 2 SOURCES.
   * SOURCESTAYNAMES: SAME COMMENT AS SOURCEMOVENAMES, BUT THE ITEMS
                      WILL NOT BE DELETED AFTER DRAGDROP.
                      KEEP IN MIND THAT THE MAXIMUM OF SOURCESTAY + SOURCE
                      MOVE ITEMS MAY NOT EXCEED 5. IF YOU NEED MORE,
                      CHANGE THE CONSTANT IN THIS UNIT.

THE PUBLIC METHOD "INITIALIZE" CAN BE USED TO CLEAR ALL SOURCES AND THE DESTINATION OBJECT.	


HOW TO ORDER:

TO GET COMPLETE SOURCE CODE (1700 LINES) FOR THE TDRAGDROP COMPONENT, FIRST GIVE ME AN
EMAIL. BE SURE TO INCLUDE YOUR OWN EMAIL ALSO WITHIN THE REQUEST.

AFTER RECEIVING THE EMAIL, I GIVE A UNIQUE ID FOR REFERENCE CHECK OF THE DONATION. 

YOU'LL GET MORE INFO HOW TO DONATE WHEN I RECEIVE YOUR REQUEST BY EMAIL.


THANK YOU...