| Project & Archive Informations |
| about DragNDrop.zip and DragNDrop(2).zip |

| Restrictions On Using This Archive
| This archive and its contents is copyright 1998,99 by Dieter Steinwedel. ALL RIGHTS ARE RESERVED BY DIETER STEINWEDEL. You are allowed to use it freely subject to the following restrictions: You are not allowed to delete or alter the author's name and copyright in any manner You are not allowed to publish a copy, modified version or compilation neither for payment in any kind nor freely if the author has not agreed You are allowed to create a link to the download or homepage in the WWW These restrictions and terms apply to you as long as you use this archive. I won't change these conditions when I have published the archive. But I reserve the right to alter these conditions for a newer archive version. The archive version is the archive's date. Changes can found on my homepage.

| Disclaimer For This Archive
| The author disclaims all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness for any purpose. The author assumes no liability for damages, direct or consequential, which may result from the use of this component/unit.

| Remark For This Archive
| The help files for the archive DragNDrop.zip and DragNDrop(D2).zip are the same. It may be, that the description in this file doesn't work with both versions, but I've tried to care about all differences. The help files for the featured classes/components contain only new introduced properties, methods, events, constants etc.

| Archive Update Informations
| 19-Dec-1999
| Changes in TDragDrop (drop-handler, context-menu) Changes in TDragDropFilesEx (shell extensions) A small bug fixed in PIDL.PAS
| 13-Nov-1999
| Changes in TDragDrop and TDragDropFilesEx "ListSort.dcr" and "ListSort.pas" won't be shipped any longer with this archive The components will be now registered in the group "Shell32"
| 23-Aug-1999
| Re-designed help files
| before 23-Aug-1999
| this section didn't exist before this date
| Check the featured components/classes for more details.

| Author & Credits
| This archive and components are created by Dieter Steinwedel. If you like it and want to reward the work, you can e.g. give a small donation, but it is definitly NO obligation in any way. A special thank to Ingo Eckel. He has given me many suggestions to improve my components.

| Requirements
| Windows 95/NT4 or higher Delphi 2 or 4 The requirements won't be tested for every new version.

| Install
| Install the components as common you install components. The components will appear in the group "shell32". Modify it, if you want. It may be, that the popup-menu of the components doesn't support the same language which your Windows version does. You can do following to fix this: Modify the method SetCaptionOfMenuItems in the unit DragDrop.pas for your language. It is really simple to modify, you will see. It is welcomed, if you mail me the modified version. But before you do that, check on MY HOMEPAGE, if the language is already supported. Please send me only that, you have add/modified, not the whole code - I already have it :). I support following languages: German, French*, Italian*, Polish*, Portuguese*, Spanish* and English * = I don't speak this language, but hope, that translation is correct. If your language is not supported, the language is automatically set to English. The components are designed for easy use. For more infomation consult the Delphi online-help. In the most cases (okay, delete the "on" at "onXXXXXX", etc.) you will get help. In my help-files are only the new introduced properties, methods etc. of the component listed. You find detailed infomation about the inherited properties etc. in the documentation of TDragDrop. I have heard, that Borland C++ user even can use this unit. The automatic created headers may have some bugs. After you have solved this problem, you should use it without problems! For Borland C++ Builder 1.00 users only: For some reasons the C++Builder generates the methods in the headerfile for the component with Ole2::IDataObject. The event methods are generated on the other hand without the Ole2::specifier, which leads to an ambigius IDataObject Ole2::IDataObject Error during compilation.You can solve this by defining IDataObject as Ole2::IDataObject with #define IDataObject Ole2::IDataObject and replace all Ole2::IDataObject with IDataObject in all generated headerfiles. This fools the compiler, because the header is loaded first and everything is all right. After these changes were done, it's recommended to change the file attributes of the headerfile to "read-only", because the headerfile will be created on every compilation and the change will be discarded. Remark: This detailed description was mailed by an C++Builder user. I (Dieter Steinwedel) can't give you more detailed information, because I haven't experiences in programing with C++. Therefore, I'm not able to relpy your question. For DragNDrop(D2).zip users only: The first versions of the units were written with Delphi2. Later I have ported them to Delphi4. Now, I primary develop with Delphi4. Newer versions of Delphi may have problems to install the units of the archive DragNDrop(D2).zip. Usually you have to search the unit "OLE2" on your Delphi CD and copy it in the same path, were this unit is located. Then, it should works!

| Files In This Archive

| Name | Description
| demo.zip | contains a demo project in source code to show you the features of the components
DragDrop.dcr | ressource file
DragDrop.pas | Delphi unit; contains many basic classes like TDragDrop
DragDropBitmap.dcr | ressource file
DragDropBitmap.pas | Delphi unit; contains the implementation of TDragDropBitmap
DragDropFiles.dcr | ressource file
DragDropFiles.pas | Delphi unit; contains the implementation of TDragDropFiles
DragDropFilesEx.dcr | ressource file
DragDropFilesEx.pas | Delphi unit; contains the implementation of TDragDropFilesEx
DragDropText.dcr | ressource file
DragDropText.pas | Delphi unit; contains the implementation of TDragDropText
DragDropUrl.dcr | ressource file
DragDropUrl.pas | Delphi unit; contains the implementation of TDragDropUrl
GridFixDemo.zip | contains a demo that shows you, how to make a grid, based on TCustomGrid, compatible with my drag&drop controls.
PIDL.pas | Delphi unit
Index.htm | help-file; contains the project & archive informations (this document)
MyShlObj.pas | Delphi unit; only in the Delphi2 archive
RegStr.pas | Delphi unit; only in the Delphi2 archive
TDragDrop.htm | help-file for TDragDrop
TDragDrop.gif | picture-file
TDragDropBitmap.htm | help-file for TDragDropBitmap
TDragDropBitmap.gif | picture-file
TDragDropFiles.htm | help-file for TDragDropFiles
TDragDropFiles.gif | picture-file
TDragDropFilesEx.htm | help-file for TDragDropFilesEx
TDragDropFilesEx.gif | picture-file
TDragDropText.htm | help-file for TDragDropText
TDragDropText.gif | picture-file
TDragDropUrl.htm | help-file for TDragDropUrl
TDragDropUrl.gif | picture-file
| I hope, that this list is actual. If not, please send me an email.

| Featured Components (in alphabetic order)

| TDragDrop
| TDragDrop is a component for COM/OLE based drag&drop operations. The component is able to make child-classes of TWinControl (e.g. TEdit, TMemo, TListView, etc.) to be the source AND target of drag&drop operations. More details...
| TDragDropBitmap
| TDragDropBitmap is a comfortable and powerful component for COM/OLE based drag&drop operations with bitmaps. The component is a child-class from TDragDrop. More details...
| TDragDropFiles
| TDragDropFiles is a comfortable and powerful component for COM/OLE based drag&drop operations with files. The component is a child-class from TDragDrop. IMPORTANT: TDragDropFiles doesn't support shortcuts to files like TDragDropFilesEx. More details...
| TDragDropFilesEx
| TDragDropFilesEx is a comfortable and powerful component for COM/OLE based drag&drop operations with files and supports completely the namespace of Windows (PIDL). The component is a child-class from TDragDrop. More details...
| TDragDropText
| TDragDropText is a comfortable and powerful component for COM/OLE based drag&drop operations with plain text. The component is a child-class from TDragDrop. More details...
| TDragDropURL
| TDragDropURL is a comfortable and powerful component for COM/OLE based drag&drop operations with URLs. The component is a child-class from TDragDrop. More details...

| Contact
| Please mail me only bugs and fixed. Don't ask for help, I won't answer, because my time is very limited. But before you contact me, check my homepage. I will publish bugs and fixes etc. as soon as I know them. Write a SHORT but UNDERSTANDABLE email in english or german. Of course, I'm interested in YOUR improvements. I always try to increase the quality of my components/classes. Therefore, mail my your improvements, please. Thanks! email: dsteinwe@uos.de

© 1998,99 by Dieter Steinwedel