Welcome![Sign In][Sign Up]
Location:
Search - delphi process view

Search list

[Windows DevelopSenfore_DragDrop_v4.1

Description: Drag and Drop Component Suite Version 4.1 Field test 5, released 16-dec-2001 ?1997-2001 Angus Johnson & Anders Melander http://www.melander.dk/delphi/dragdrop/ ------------------------------------------- Table of Contents: ------------------------------------------- 1. Supported platforms 2. Installation 3. Getting started 4. Known problems 5. Support and feedback 6. Bug reports 7. Upgrades and bug fixes 8. Missing in this release 9. New in version 4.x 10. TODO 11. Licence, Copyright and Disclaimer 12. Release history ------------------------------------------- 1. Supported platforms: ------------------------------------------- This release supports Delphi 4-6 and C++ Builder 4-5. Earlier versions of Delphi and C++ Builder will not be supported. If you need Delphi 3 or C++ Builder 3 support you will have to revert to version 3.7 of the Drag and Drop Component Suite. The library has been tested on NT4 service pack 5 and Windows 2000. Windows 95, 98, ME and XP should be supported, but has not been tested. Linux and Kylix are not supported. There are *NO* plans to port the library to Kylix. The drag and drop protocols available on Linux are too much of a mess at this time. ------------------------------------------- 2. Installation: ------------------------------------------- 1) Before you do anything else, read the "Known problems" section of this document. 2) Install the source into a directory of your choice. The files are installed into three directories: DragDrop DragDrop\Components DragDrop\Demo 3) Install and compile the appropriate design time package. The design time packages are located in the Components directory. Each version of Delphi and C++ Builder has its own package; DragDropD6.dpk for Delphi 6, DragDropD5.dpk for Delphi 5, DragDropC5.bpk for C++ Builder 5, etc. 4) Add the Drag and Drop Component Suite components directory to your library path. 5) Load the demo project group: demo\dragdrop_delphi.bpg for Delphi 5 and 6 demo\dragdrop_bcb4.bpg for C++ Builder 4 demo\dragdrop_bcb5.bpg for C++ Builder 5 The project group contains all the demo applications. 6) If your version of Delphi does not support text format DFM files (e.g. Delphi 4 doesn't), you will have to use the convert.exe utility supplied with Delphi to convert all the demo form files to binary format. A batch file, convert_forms_to delphi_4_format.bat, is supplied in the demo directory which automates the conversion process. The C++ Builder demo forms are distributed in binary format. 7) If upgrading from a previous version of the Drag and Drop Component Suite, please read the document "upgrading_to_v4.txt" before you begin working on your existing projects. Note about "Property does not exist" errors: Since all demos were developed with the latest version of Delphi, most of the demo forms probably contains references to properties that doesn't exist in earlier versions of Delphi and C++ Builder. Because of this you will get fatal run-time errors (e.g. "Error reading blahblahblah: Property does not exist.") if you attemt to run the demos without fixing this problem. Luckily it is very easy to make the forms work again; Just open the forms in the IDE, then select "Ignore All" when the IDE complains that this or that property doesn't exist and finally save the forms. ------------------------------------------- 3. Getting started: ------------------------------------------- It is recommended that you start by running each of the demo applications and then look through the demo source. Each demo application is supplied with a readme.txt file which briefly describes what the demo does and what features it uses. The demos should be run in the order in which they are listed in the supplied project group. Even if you have used previous versions of the Drag and Drop Component Suite it would be a good idea to have a quick look at the demos. The library has been completely rewritten and a lot of new features has been added. ------------------------------------------- 4. Known problems: ------------------------------------------- * The Shell Extension components does not support C++ Builder 4. For some strange reason the components causes a link error. * There appear to be sporadic problems compiling with C++ Builder 5. Several user have reported that they occasionally get one or more of the following compiler errors: [C++ Error] DragDropFile.hpp(178): E2450 Undefined structure '_FILEDESCRIPTORW' [C++ Error] DropSource.hpp(135): E2076 Overloadable operator expected I have not been able to reproduce these errors, but I believe the following work around will fix the problem: In the project options of *all* projects which uses these components, add the following conditional define: NO_WIN32_LEAN_AND_MEAN The define *must* be made in the project options. It is not sufficient to #define it in the source. If you manage to compile with C++ Builder (any version), I would very much like to know about it. * Delphi's and C++ Builder's HWND and THandle types are not compatible. For this reason it might be nescessary to cast C++ Builder's HWND values to Delphi's THandle type when a HWND is passed to a function. E.g.: if (DragDetectPlus(THandle(MyControl->Handle), Point(X, Y))) { ... } * Virtual File Stream formats can only be pasted from the clipboard with live data (i.e. FlushClipboard/OleFlushClipboard hasn't been called on the data source). This problem affects TFileContentsStreamOnDemandClipboardFormat and the VirtualFileStream demo. This is believed to be a bug in the Windows clipboard and a work around hasn't been found yet. * Asynchronous targets appears to be broken in the current release. * When TDropFileTarget.GetDataOnEnter is set to True, the component doesn't work with WinZip. Although the file names are received correctly by TDropFileTarget, WinZip doesn't extract the files and the files thus can't be copied/moved. This is caused by a quirk in WinZip; Apparently WinZip doesn't like IDataObject.GetData to be called before IDropTarget.Drop is called. ------------------------------------------- 5. Support and feedback: ------------------------------------------- Since these components are freeware they are also unsupported. You are welcome to ask for help via email, but I cannot guarantee that I will have time to help you or even reply to your mail. If you absolytely can't live without my help, you can alway try bribing me. You can also try asking for help in the Delphi newsgroups. Since the Drag and Drop Component Suite is in widespread use, there's a good chance another user can help you. I recommend the following newsgroups for issues regarding this library (or COM based Drag/Drop in general): borland.public.delphi.winapi borland.public.delphi.thirdparty-tools borland.public.delphi.oleautomation borland.public.cppbuilder.winapi borland.public.cppbuilder.thirdparty-tools Please choose the most appropiate newsgroup for your question. Do not cross post to them all. Before posting to the newsgroups, I suggest you try to search for an answer on the Google (DejaNews) search engine: http://groups.google.com Chances are that your question has been asked and answered before. If you have suggestions for improvements please mail them to me: anders@melander.dk Please include the words "Drag Drop" in the subject of any email regarding these components. ------------------------------------------- 6. Bug reports: ------------------------------------------- Bugs can either be reported at my home page (http://www.melander.dk/) or mailed directly to me: anders@melander.dk. When reporting a bug, please provide the following information: * The exact version of the Drag and Drop Component Suite you are using. * The exact version of Delphi or C++ Builder you are using. * The name and exact version of your operating system (e.g. NT4 SP5). * The exact version of the Internet Explorer installed on your system. If you can provide me with a minimal application which reproduces the problem, I can almost guarantee that I will be able to fix the problem in very short time. Please supply only the source files (pas, dfm, dpr, dof, res, etc.) and mail them as a single zip file. If I need a compiled version I will ask for it. If you feel you need to send me a screen shot, please send it in GIF or PNG format. If you mail a bug report to me, please include the words "Drag Drop" in the subject of your email. ------------------------------------------- 7. Upgrades and bug fixes: ------------------------------------------- Upgrades can be downloaded from my home page: http://www.melander.dk/delphi/dragdrop/ Bug fixes will also be posted to the above page. If you have registered for update notification via the installation program, you will receive email notification when a new release is available. You will not be notified of bug fixes. You can use the installation program to check for and download new releases and to check for known bugs. Note: If a new release is made available and you are not notified even though you registered for notification, you probably mistyped your email address during installation; About 10% of all registrations supply an invalid email address. ------------------------------------------- 8. Missing in this release: ------------------------------------------- * On-line help has not been updated and included in the kit due to late changes in the Delphi 6 help system and lack of time. If time permits, I will update the help and include it in a future release. ------------------------------------------- 9. New in version 4.x: ------------------------------------------- * Completely redesigned and rewritten. Previous versions of the Drag and Drop Component Suite used a very monolithic design and flat class hierachy which made it a bit cumbersome to extend the existing components or implement new ones. Version 4 is a complete rewrite and redesign, but still maintains compatibility with previous versions. The new V4 design basically separates the library into three layers: 1) Clipboard format I/O. 2) Data format conversion and storage. 3) COM Drag/Drop implementation and VCL component interface. The clipboard format layer is responsible for reading and writing data in different formats to and from an IDataObject interface. For each different clipboard format version 4 implements a specialized class which knows exactly how to interpret the clipboard format. For example the CF_TEXT (plain text) clipboard format is handled by the TTextClipboardFormat class and the CF_FILE (file names) clipboard format is handled by the TFileClipboardFormat class. The data format layer is primarily used to render the different clipboard formats to and from native Delphi data types. For example the TTextDataFormat class represents all text based clipboard formats (e.g. TTextClipboardFormat) as a string while the TFileDataFormat class represents a list of file names (e.g. TFileClipboardFormat) as a string list. The conversion between different data- and clipboard formats is handled by the same Assign/AssignTo mechanism as the VCLs TPersistent employes. This makes it possible to extend existing data formats with support for new clipboard formats without modification to the existing classes. The drag/drop component layer has several tasks; It implements the actual COM drag/drop functionality (i.e. it implements the IDropSource, IDropTarget and IDataObject interfaces (along with several other related interfaces)), it surfaces the data provided by the data format layer as component properties and it handles the interaction between the whole drag/drop framework and the users code. The suite provides a multitude of different components. Most are specialized for different drag/drop tasks (e.g. the TDropFileTarget and TDropFilesSource components for drag/drop of files), but some are either more generic, handling multiple unrelated formats, or simply helper components which are used to extend the existing components or build new ones. * Support for Delphi 6. Version 4.0 was primarily developed on Delphi 6 and then ported back to previous versions of Delphi and C++ Builder. * Support for Windows 2000 inter application drag images. On Windows platforms which supports it, drag images are now displayed when dragging between applications. Currently only Windows 2000 supports this feature. On platforms which doesn't support the feature, drag images are only displayed whithin the source application. * Support for Windows 2000 asynchronous data transfers. Asynchronous data tranfers allows the drop source and targets to perform slow transfers or to transfer large amounts of data without blocking the user interface while the data is being transfered. For platforms other than Windows 2000, the new TDropSourceThread class can be used to provide similar (but more limited) asynchronous data transfer capabilities. * Support for optimized and non-optimized move. When performing drag-move operations, it is now possible to specify if the target (optimized move) or the source (non-optimized move) is responsible for deleting the source files. * Support for delete-on-paste. When data is cut to the clipboard, it is now possible to defer the deletion of the source data until the target actually pastes the data. The source is notified by an event when the target pastes the data. * Extended clipboard support. All formats and components (both source and target) now support clipboard operations (copy/cut/paste) and the VCL clipboard object. * Support for shell drop handlers. The new TDropHandler component can be used to write drop handler shell extensions. A drop handler is a shell extension which is executed when a user drags and drops one or more files on a file associated wth your application. * Support for shell drag drop handlers. The new TDragDropHandler component can be used to write drag drop handler shell extensions. A drag drop handler is a shell extension which can extend the popup menu which is displayed when a user drag and drops files with the right mouse button. * Support for shell context menu handlers. The new TDropContextMenu component can be used to write context menu handler shell extensions. A context menu handler is a shell extension which can extend the popup menu which is displayed when a user right-clicks a file in the shell. * Drop sources can receive data from drop targets. It is now possible for drop targets to write data back to the drop source. This is used to support optimized-move, delete-on-paste and inter application drag images. * Automatic re-registration of targets when the target window handle is recreated. In previous versions, target controls would loose their ability to accept drops when their window handles were recreated by the VCL (e.g. when changing the border style or docking a form). This is no longer a problem. * Support for run-time definition of custom data formats. You can now add support for new clipboard formats without custom components. * Support for design-time extension of existing source and target components. Using the new TDataFormatAdapter component it is now possible to mix and match data formats and source and target components at design time. E.g. the TDropFileTarget component can be extended with URL support. * It is now possible to completely customize the target auto-scroll feature. Auto scroling can now be completely customized via the OnDragEnter, OnDragOver, OnGetDropEffect and OnScroll events and the public NoScrollZone and published AutoScroll properties. * Multiple target controls per drop target component. In previous versions you had to use one drop target component per target control. With version 4, each drop target component can handle any number of target controls. * It is now possible to specify the target control at design time. A published Target property has been added to the drop target components. * Includes 20 components: - TDropFileSource and TDropFileTarget Used for drag and drop of files. Supports recycle bin and PIDLs. - TDropTextSource and TDropTextTarget Used for drag and drop of text. - TDropBMPSource and TDropBMPTarget Used for drag and drop of bitmaps. - TDropPIDLSource and TDropPIDLTarget Used for drag and drop of PIDLs in native format. - TDropURLSource and TDropURLTarget Used for drag and drop of internet shortcuts. - TDropDummyTarget Used to provide drag/drop cursor feedback for controls which aren't registered as drop targets. - TDropComboTarget (new) Swiss-army-knife target. Accepts text, files, bitmaps, meta files, URLs and file contents. - TDropMetaFileTarget (new) Target which can accept meta files and enhanced meta files. - TDropImageTarget (new) Target which can accept bitmaps, DIBs, meta files and enhanced meta files. - TDragDropHandler (new) Used to implement Drag Drop Handler shell extensions. - TDropHandler (new) Used to implement Shell Drop Handler shell extensions. - TDragDropContext (new) Used to implement Shell Context Menu Handler shell extensions. - TDataFormatAdapter (new) Extends the standard source and target components with support for extra data formats. An alternative to TDropComboTarget. - TDropEmptySource and TDropEmptyTarget (new) Target and source components which doesn't support any formats, but can be extended with TDataFormatAdapter components. * Supports 27 standard clipboard formats: Text formats: - CF_TEXT (plain text) - CF_UNICODETEXT (Unicode text) - CF_OEMTEXT (Text in the OEM characterset) - CF_LOCALE (Locale specification) - 'Rich Text Format' (RTF text) - 'CSV' (Tabular spreadsheet text) File formats: - CF_HDROP (list of file names) - CF_FILEGROUPDESCRIPTOR, CF_FILEGROUPDESCRIPTORW and CF_FILECONTENTS (list of files and their attributes and content). - 'Shell IDList Array' (PIDLs) - 'FileName' and 'FileNameW' (single filename, used for 16 bit compatibility). - 'FileNameMap' and 'FileNameMapW' (used to rename files, usually when dragging from the recycle bin) Image formats: - CF_BITMAP (Windows bitmap) - CF_DIB (Device Independant Bitmap) - CF_METAFILEPICT (Windows MetaFile) - CF_ENHMETAFILE (Enhanced Metafile) - CF_PALETTE (Bitmap palette) Internet formats: - 'UniformResourceLocator' and 'UniformResourceLocatorW' (Internet shortcut) - 'Netscape Bookmark' (Netscape bookmark/URL) - 'Netscape Image Format' (Netscape image/URL) - '+//ISBN 1-887687-00-9::versit::PDI//vCard' (V-Card) - 'HTML Format' (HTML text) - 'Internet Message (rfc822/rfc1522)' (E-mail message in RFC822 format) Misc. formats: - CF_PREFERREDDROPEFFECT and CF_PASTESUCCEEDED (mostly used by clipboard) - CF_PERFORMEDDROPEFFECT and CF_LOGICALPERFORMEDDROPEFFECT (mostly used for optimized-move) - 'InShellDragLoop' (used by Windows shell) - 'TargetCLSID' (Mostly used when dragging to recycle-bin) * New source events: - OnGetData: Fired when the target requests data. - OnSetData: Fired when the target writes data back to the source. - OnPaste: Fired when the target pastes data which the source has placed on the clipboard. - OnAfterDrop: Fired after the drag/drop operation has completed. * New target events: - OnScroll: Fires when the target component is about to perform auto-scroll on the target control. - OnAcceptFormat: Fires when the target component needs to determine if it will accept a given data format. Only surfaced in the TDropComboTarget component. * 8 new demo applications, 19 in total. ------------------------------------------- 10. TODO (may or may not be implemented): ------------------------------------------- * Async target demo (with and without IAsyncOperation support). * Scrap file demo. * Native Outlook message format. * Structured storage support (IStorage encapsulation). ------------------------------------------- 11. Licence, Copyright and Disclaimer: ------------------------------------------- The Drag and Drop Component Suite is Copyright ?1997-2001 Angus Johnson and Anders Melander. All rights reserved. The software is copyrighted as noted above. It may be freely copied, modified, and redistributed, provided that the copyright notice(s) is preserved on all copies. The Drag and Drop Component Suite is freeware and we would like it to remain so. This means that it may not be bundled with commercial libraries or sold as shareware. You are welcome to use it in commercial and shareware applications providing you do not charge for the functionality provided by the Drag and Drop Component Suite. There is no warranty or other guarantee of fitness for this software, it is provided solely "as is". You are welcome to use the source to make your own modified components, and such modified components may be distributed by you or others if you include credits to the original components, and do not charge anything for your modified components. ------------------------------------------- 12. Version 4 release history: ------------------------------------------- 16-dec-2001 * Ported to C++ Builder 4. * Released for test as v4.1 FT5. 12-dec-2001 * Fixed C++ Builder name clash between TDropComboTarget.GetMetaFile and the GetMetaFile #define in wingdi.h 1-dec-2001 * The IAsyncOperation interface is now also declared as IAsyncOperation2 and all references to IAsyncOperation has been replaced with IAsyncOperation2. This was done to work around a bug in C++ Builder. Thanks to Jonathan Arnold for all his help with getting the components to work with C++ Builder. Without Jonathan's help version 4.1 would prabably have shipped witout C++ Builder support and certainly without any C++ Builder demos. * Demo applications for C++ Builder. The C++ Builder demos were contributed by Jonathan Arnold. 27-nov-2001 * TCustomDropTarget.Droptypes property renamed to DropTypes (notice the case). Thanks to Krystian Brazulewicz for spotting this. 24-nov-2001 * The GetURLFromString function in the DragDropInternet unit has been made public due to user request. 21-nov-2001 * Modified MakeHTML function to comply with Microsoft's description of the CF_HTML clipboard format. * Added MakeTextFromHTML function to convert CF_HTML data to plain HTML. Provides the reverse functionality of MakeHTML. * Added HTML support to TTextDataFormat class and TDropTextSource and TDropTextTarget components. * Fixed C++ Builder 5 problem with IAsyncOperation. * Released for test as v4.1 FT4. 10-nov-2001 * Added NetscapeDemo demo application. Demonstrates how to receive messages dropped from Netscape. This demo was sponsored by ThoughtShare Communications Inc. * Released for test as v4.1 FT3. 23-oct-2001 * Conversion priority of TURLDataFormat has been changed to give the File Group Descritor formats priority over the Internet Shortcut format. This resolves a problem where dropping an URL on the desktop would cause the desktop to assume that an Active Desktop item was to be created instead of an Internet Shortcut. Thanks to Allen Martin for reporting this problem. By luck this modification also happens to work around a bug in Mozilla and Netscape 6; Mozilla incorrectly supplies the UniformResourceLocator clipboard format in unicode format instead of ANSI format. Thanks to Florian Kusche for reporting this problem. * Added support for TFileGroupDescritorWClipboardFormat to TURLDataFormat. * Added declaration of FD_PROGRESSUI to DragDropFormats. * Added TURLWClipboardFormat which implements the "UniformResourceLocatorW" (a.k.a. CFSTR_INETURLW) clipboard format. Basically a Unicode version of CFSTR_SHELLURL/CFSTR_INETURL. The TURLWClipboardFormat class isn't used anywhere yet but will probably be supported by TURLDataFormat (and thus TDropURLTarget/TDropURLSource) in a later release. * Added experimental Shell Drag Image support. This relies on undodumented shell32.dll functions and probably won't be fully support before v4.2 (if ever). See InitShellDragImage in DropSource.pas. Thanks to Jim Kueneman for bringning these functions to my attention. 13-oct-2001 * TCustomDropSource.Destroy and TCustomDropMultiSource.Destroy changed to call FlushClipboard instead of EmptyClipboard. This means that clipboard contents will be preserved when the source application/component is terminated. * Added clipboard support to VirtualFileStream demo. * Modified VirtualFileStream demo to work around clipboard quirk with IStream medium. * Modified TCustomSimpleClipboardFormat to disable TYMED_ISTORAGE support by default. At present TYMED_ISTORAGE is only supported for drop targets and enabling it by default in TCustomSimpleClipboardFormat.Create caused a lot of clipboard operations (e.g. copy/paste of text) to fail. Thanks to Michael J Marshall for bringing this problem to my attention. * Modified TCustomSimpleClipboardFormat to read from the the TYMED_ISTREAM medium in small (1Mb) chunks and via a global memory buffer. This has resultet in a huge performance gain (several orders of magnitude) when transferring large amounts of data via the TYMED_ISTREAM medium. 3-oct-2001 * Fixed bug in TCustomDropSource.SetImageIndex. Thanks to Maxim Abramovich for spotting this. * Added missing default property values to TCustomDropSource. Thanks to Maxim Abramovich for spotting this. * DragDrop.pas and DragDropContext.pas updated for Delphi 4. * Reimplemented utility to convert DFM form files from Delphi 5/6 test format to Delphi 4/5 binary format. * Improved unregistration of Shell Extensions. Shell extension now completely (and safely) remove their registry entries when unregistered. * Deprecated support for C++ Builder 3. * Released for test as v4.1 FT2. 25-sep-2001 * Rewritten ContextMenuHandlerShellExt demo. The demo is now actually a quite useful utility which can be used to register and unregister ActiveX controls, COM servers and type libraries. It includes the same functionality as Borland's TRegSvr utility. 20-sep-2001 * Added support for cascading menus, ownerdraw and menu bitmaps to TDropContextMenu component. * Modified TFileContentsStreamOnDemandClipboardFormat to handle invalid parameter value (FormatEtcIn.lindex) when data is copied to clipboard. This works around an apparent bug in the Windows clipboard. Thanks to Steve Moss for reporting this problem. * Modified TEnumFormatEtc class to not enumerate empty clipboard formats. Thanks to Steve Moss for this improvement. 1-sep-2001 * Introduced TCustomDropTarget.AutoRegister property. The AutoRegister property is used to control if drop target controls should be automatically unregistered and reregistered when their window handle is recreated by the VCL. If AutoRegister is True, which is the default, then automatic reregistration will be performed. This property was introduced because the hidden child control, which is used to monitor the drop target control's window handle, can have unwanted side effects on the drop target control (e.g. TToolBar). * Deprecated support for Delphi 3. 22-jun-2001 * Redesigned TTextDataFormat to handle RTF, Unicode, CSV and OEM text without conversion. Moved TTextDataFormat class to DragDropText unit. Added support for TLocaleClipboardFormat. * Surfaced new text formats as properties in TDropTextSource and TDropTextTarget. Previous versions of the Text source and target components represented all supported text formats via the Text property. In order to enable users to handle the different text formats independantly, the text source and target components now has individual properties for ANSI, OEM, Unicode and RTF text formats. The text target component can automatically synthesize some of the formats from the others (e.g. OEM text from ANSI text), but applications which previously relied on all formats being represented by the Text property will have to be modified to handle the new properties. * Added work around for problem where TToolBar as a drop target would display the invisible target proxy window. * Fixed wide string bug in WriteFilesToZeroList. Thanks to Werner Lehmann for spotting this. 15-jun-2001 * Added work-around for Outlook Express IDataObject.QueryGetData quirk. 3-jun-2001 * Ported to C++ Builder 4 and 5. * Added missing DragDropDesign.pas unit to design time packages. * First attempt at C++ Builder 3 port.... failed. * Improved handling of oversized File Group Descriptor data. * Added support for IStorage medium to TFileContentsStreamClipboardFormat. This allows the TDropComboTarget component to accept messages dropped from Microsoft Outlook. This work was sponsored by ThoughtShare Communications Inc. 23-may-2001 * Ported to Delphi 4. * First attempt at C++ Builder 5 port.... failed. 18-may-2001 * Released as version 4.0. Note: Version 4.0 was released exclusively on the Delphi 6 Companion CD. * ContextMenuDemo and DropHandlerDemo application has been partially rewritten and renamed. ContextMenuDemo is now named ContextMenuHandlerShellExt. DropHandlerDemo is now named DropHandlerShellExt. * TDropContextMenu component has been rewitten. The TDropContextMenu now implements a context menu handler shell extension. In previous releases it implemented a drag drop handler shell extension. * The DragDropHandler.pas unit which implements the TDropHandler component has been renamed to DropHandler.pas. * Added new TDragDropHandler component. The new component, which lives in the DragDropHandler unit, is used to implement drag drop handler shell extensions. * Added DragDropHandlerShellExt demo application. * Removed misc incomplete demos from kit. * Fixed minor problem in VirtualFileStream demo which caused drops from the VirtualFile demo not to transfer content correctly. 11-may-2001 * Converted all demo forms to text DFM format. This has been nescessary to maintain compatibility between all supported versions of Delphi. * Fixed a bug in GetPIDLsFromFilenames which caused drag-link of files (dtLink with TDropFileSource) not to work. * Added readme.txt files to some demo applications. * Added missing tlb and C++ Builder files to install kit. * Released as FT4. 6-may-2001 * Added missing dfm files to install kit. * Tested with Delphi 5. Fixed Delphi 5 compatibility error in main.dfm of DragDropDemo. * Removed misc compiler warnings. * The AsyncTransferTarget and OleObjectDemo demos were incomplete and has been removed from the kit for the V4.0 release. The demos will be included in a future release. * Released as FT3. 3-may-2001 * Added missing dpr and bpg files to install kit. * Updated readme.txt with regard to lack of C++ Builder demos. * Released as FT2. 29-apr-2001 * Cleaned up for release. * Released as FT1. 23-feb-2001 * Modified TCustomDropTarget.FindTarget to handle overlapping targets (e.g. different targets at the same position but on different pages of a page control or notebook). Thanks to Roger Moe for spotting this problem. 13-feb-2001 * Renamed AsyncTransfer2 demo to AsyncTransferSource. * Added AsyncTransferTarget demo. * Replaced TChart in AsyncTransfer2 demo with homegrown pie-chart-thing. * Modified all IStream based target formats to support incremental transfer. * URW533 problem has finally been fixed. The cause of the problem, which is a bug in Delphi, was found by Stefan Hoffmeister. * Fixed free notification for TDropContextmenu and TDataFormatAdapter. 27-dec-2000 * Moved TVirtualFileStreamDataFormat and TFileContentsStreamOnDemandClipboardFormat classes from VirtualFileStream demo to DragDropFormats unit. * Added TClipboardFormat.DataFormat and TClipboardFormats.DataFormat property. * Added TDropEmptySource and TDropEmptyTarget components. These are basically do-nothing components for use with TDataFormatAdapter. * Rewritten AsyncTransfer2 demo. The demo now uses TDropEmptySource, TDataFormatAdapter and TVirtualFileStreamDataFormat to transfer 10Mb of data with progress feedback. * Rewritten VirtualFileStream demo. The demo now uses TDropEmptySource, TDropEmptyTarget, TDataFormatAdapter and TVirtualFileStreamDataFormat. * Fixed memory leak in TVirtualFileStreamDataFormat. This leak only affected the old VirtualFileStream demo. * Added support for full File Descriptor attribute set to TVirtualFileStreamDataFormat. It is now possible to specify file attributes such as file size and last modified time in addition to the filename. I plan to add similar features to the other classes which uses FileDescriptors (e.g. TDropFileSource and TDropFileTarget). 21-dec-2000 * Ported to Delphi 4. * Added workaround for design bug in either Explorer or the clipboard. Explorer and the clipboard's requirements to the cursor position of an IStream object are incompatible. Explorer requires the cursor to be at the beginning of stream and the clipboard requires the cursor to be at the end of stream. 15-dec-2000 * Fixed URW533 problem. I'll leave the description of the workaround in here for now in case the problem resurfaces. 11-dec-2000 * Fixed bug in filename to PIDL conversion (GetPIDLsFromFilenames) which affected TDropFileTarget. Thanks to Poul Halgaard J鴕gensen for reporting this. 4-dec-2000 * Added THTMLDataFormat. * Fixed a a few small bugs which affected clipboard operations. * Added {$ALIGN ON} to dragdrop.inc. Apparently COM drag/drop requires some structures to be word alligned. This change fixes problems where some of the demos would suddenly stop working. * The URW533 problem has resurfaced. See the "Known problems" section below. 13-nov-2000 * TCopyPasteDataFormat has been renamed to TFeedbackDataFormat. * Added support for the Windows 2000 "TargetCLSID" format with the TTargetCLSIDClipboardFormat class and the TCustomDropSource.TargetCLSID property. * Added support for the "Logical Performed DropEffect" format with the TLogicalPerformedDropEffectClipboardFormat class. The class is used internally by TCustomDropSource. 30-oct-2000 * Added ContextMenu demo and TDropContextMenu component. Demonstrates how to customize the context menu which is displayed when a file is dragged with the right mouse button and dropped in the shell. * Added TCustomDataFormat.GetData. With the introduction of the GetData method, Data Format classes can now be used stand-alone to extract data from an IDataObject. 20-oct-2000 * Added VirtualFileStream demo. Demonstrates how to use the "File Contents" and "File Group Descritor" clipboard formats to drag and drop virtual files (files which doesn't exist physically) and transfer the data on-demand via a stream. 14-oct-2000 * Added special drop target registration of TCustomRichEdit controls. TCustomRichEdit needs special attention because it implements its own drop target handling which prevents it to work with these components. TCustomDropTarget now disables a rich edit control's built in drag/drop handling when the control is registered as a drop target. * Added work around for Windows bug where IDropTarget.DragOver is called regardless that the drop has been rejected in IDropTarget.DragEnter. 12-oct-2000 * Fixed bug that caused docking to interfere with drop targets. Thanks to G. Bradley MacDonald for bringing the problem to my attention. 30-sep-2000 * The DataFormats property has been made public in the TCustomDropMultiTarget class. * Added VirtualFile demo. Demonstrates how to use the TFileContentsClipboardFormat and TFileGroupDescritorClipboardFormat formats to drag and drop a virtual file (a file which doesn't exist physically). 28-sep-2000 * Improved drop source detection of optimized move. When an optimized move is performed by a drop target, the drop source's Execute method will now return drDropMove. Previously drCancel was returned. The OnAfterDrop event must still be used to determine if a move operation were optimized or not. * Modified TCustomDropTarget.GetPreferredDropEffect to get data from the current IDataObject instead of from the VCL global clipboard. 18-sep-2000 * Fixed bug in DropComboTarget caused by the 17-sep-2000 TStreams modification. 17-sep-2000 * Added AsyncTransfer2 demo to demonstrate use of TDropSourceThread. * Renamed TStreams class to TStreamList. 29-aug-2000 * Added TDropSourceThread. TDropSourceThread is an alternative to Windows 2000 asynchronous data transfers but also works on other platforms than Windows 2000. TDropSourceThread is based on code contributed by E. J. Molendijk. 24-aug-2000 * Added support for Windows 2000 asynchronous data transfers. Added IAsyncOperation implementation to TCustomDropSource. Added TCustomDropSource.AllowAsyncTransfer and AsyncTransfer properties. 5-aug-2000 * Added work around for URW533 compiler bug. * Fixed D4 and D5 packages and updated a few demos. Obsolete DropMultiTarget were still referenced a few places. * Documented work around for C++ Builder 5 compiler error. See the Known Problems section later in this document for more information. 2-aug-2000 * The package files provided in the kit is now design-time only packages. In previous versions, the packages could be used both at design- and run-time. The change was nescessary because the package now contains design-time code. * Added possible work around for suspected C++ Builder bug. The bug manifests itself as a "Overloadable operator expected" compile time error. See the "Known problems" section of this document. * Rewrote CustomFormat1 demo. * Added CustomFormat2 demo. * TDataDirection members has been renamed from ddGet and ddSet to ddRead and ddWrite. * All File Group Descritor and File Contents clipboard formats has been moved from the DragDropFile unit to the DragDropFormats unit. * File Contents support has been added to TTextDataFormat. The support is currently only enabled for drop sources. * Renamed TDropMultiTarget component to TDropComboTarget. Note: This will break applications which uses the TDropMultiTarget component. You can use the following technique to port application from previous releases: 1) Install the new components. 2) Repeat step 3-8 for all units which uses the TDropMultiTarget component. 3) Make a backup of the unit (both pas and dfm file) just in case... 4) Open the unit in the IDE. 5) In the .pas file, replace all occurances of "TDropMultiTarget" with "TDropComboTarget". 6) View the form as text. 7) Replace all occurances of "TDropMultiTarget" with "TDropComboTarget". 8) Save the unit. * Renamed a lot of demo files and directories. * Added work around for yet another bug in TStreamAdapter. * Added TCustomStringClipboardFormat as new base class for TCustomTextClipboardFormat. This changes the class hierachy a bit for classes which previously descended from TCustomTextClipboardFormat: All formats which needs zero termination now descend from TCustomTextClipboardFormat and the rest descend from TCustomStringClipboardFormat. Added TrimZeroes property. Fixed zero termination bug in TCustomTextClipboardFormat and generally improved handling of zero terminated strings. Disabled zero trim in TCustomStringClipboardFormat and enabled it in TCustomTextClipboardFormat. 23-jul-2000 * Improved handling of long file names in DropHandler demo. Added work around for ParamStr bug. * Added TDataFormatAdapter component and adapter demo. TDataFormatAdapter is used to extend the existing source and target components with additional data format support without modifying them. It can be considered an dynamic alternative to the current TDropMultiTarget component. 17-jul-2000 * TDropHandler component and DropHandler demo fully functional. 14-jul-2000 * Tested with C++ Builder 5. * Fixed sporadic integer overflow bug in DragDetectPlus function. * Added shell drop handler support with TDropHandler component. This is a work in progress and is not yet functional. 1-jul-2000 * Tested with Delphi 4. * Support for Windows 2000 inter application drag images. * TRawClipboardFormat and TRawDataFormat classes for support of arbitrary unknown clipboard formats. The classes are used internally in the TCustomDropSource.SetData method to support W2K drag images.
Platform: | Size: 2130304 | Author: smj_9547 | Hits:

[Process-ThreadProcessSpy

Description: 程序主要功能是查看进程下线程和堆栈的信息。-procedures main function is to process View Thread and stack information.
Platform: | Size: 189440 | Author: 邹星火 | Hits:

[Graph Drawingbsplines

Description: 采用delphi实现的B样条曲线源程序,包含很多的功能,而且可以点击exe文件,直接查看程序的演示效果。-used to achieve the B-spline curves source include many functions, but can click on the exe file, a direct view of the process demonstration effect.
Platform: | Size: 124928 | Author: mouse | Hits:

[AI-NN-PRyichuansuanfacankao

Description: 遗传算法(Genetic Algorithm, GA)是近几年发展起来的一种崭新的全局优化算法,它借 用了生物遗传学的观点,通过自然选择、遗传、变异等作用机制,实现各个个体的适应性 的提高。这一点体现了自然界中"物竞天择、适者生存"进化过程。1962年Holland教授首次 提出了GA算法的思想,从而吸引了大批的研究者,迅速推广到优化、搜索、机器学习等方 面,并奠定了坚实的理论基础。 用遗传算法解决问题时,首先要对待解决问题的模型结构 和参数进行编码,一般用字符串表示,这个过程就将问题符号化、离散化了。也有在连续 空间定义的GA(Genetic Algorithm in Continuous Space, GACS),暂不讨论。-genetic algorithm (Genetic Algorithm. GA) is developed in recent years a new global optimization algorithm, it borrows from the biological point of view of genetics, through natural selection, genetic variation, such as mechanisms to achieve the adaptability of various individuals raised. This is reflected in the natural world, "the process of natural selection and survival of the fittest" evolutionary process. In 1962, Professor Holland first proposed the idea of the algorithm, thereby attracting a large number of researchers, to promote rapid optimization, search, machine learning, and to lay a solid foundation in theory. Using genetic algorithms to solve the problem, we must first solve the problem of the treatment of the model structure and coding parameters, general string,
Platform: | Size: 409600 | Author: 冯灿科 | Hits:

[Internet-Networkudpattack

Description: 远程反弹木马软件 主要功能:1、远程文件访问。包括文件上传、下载、文件。(夹)更名、文件删除、文件运行、文件查找、远程创建文件夹、远程清空文件夹等。  2、远程关机、启动、注销、修改组织名、用户名。  3、远程键盘记录、鼠标控制、锁定键盘鼠标、模拟特别键功能。  4、远程注册表模拟器、快速注册表修改。  5、远程消息发送、远程进程控制。  6、远程查看剪贴板、当前活动窗体名、隐藏桌面图标、隐藏任务栏、隐藏开始按钮等。  7、远程系统命令、远程DOS命令。  8、远程屏幕抓图(可保存为图片)。  9、服务端自定义配置。可自行定义IP地址、连接端口、连接密码。   您可以根据自己的需要对该程序进行任意改 * 注意:严禁用本软件进行非法使用,否则后果自行负责,作者概不对使用此软件造成的一切后果负责!!! -Remote rebound Trojan software major functions : 1, remote file access. Including file upload and download documents. (SCH) renamed, deleted files, documents operation, document search, remote folder creation, distance to empty the folder, and so on. 2, remote shutdown, the launch, cancellation, change organizations, user name. 3, remote keyboard records, mouse control, lock keyboard and mouse to simulate the special function keys. 4, remote registry simulator, rapid changes registry. 5, remote messaging, remote process control. 6, remote View clipboard, current activities Form, and hide desktop icons, hide task bar, Start button, and other hidden. 7, remote system commands, remote DOS command. 8, remote screen From Wikipedia (saved as pictures). 9, since the definition of the server confi
Platform: | Size: 606208 | Author: 林封 | Hits:

[SQL Serverlrt119_CreateDataBase

Description: 控件作用: 自动创建SQL数据库(可以同时间创建多个数据库) 控件用法: 1:添加数据库(可以添加多个数据库)选择相应的数据库. 2:添加SQL文件(创建数据表,视图,过程.可从SQL文件中加载) 3:添加基础数据库基础默认数据(可从SQL文件中加载) 4:保存并退出 调用方法 : cCreateDBV21.Execute 其它 : cCreateDB(进度显示)-control role : automatic creation of the SQL database (the same time can create multiple databases) controls usage : 1 : Add database (can be added to multiple databases) choose the corresponding database. 2 : Add SQL (create data tables, view, process. SQL documents from the load) 3 : Add database based default data (SQL documents from the load) 4 : Save and withdraw from the method call : cCreateDBV21.Execute Other : cCreateDB (progress display)
Platform: | Size: 63488 | Author: type | Hits:

[Othermmtd1.1

Description: 一个木马代码 功能比较全面 1.文件管理:模枋 Windows 资源管理器,可以对文件进行:复制、粘贴、删除,重命名、远程运行等,可以上传下载文件或文件夹,操作简单易用。 2.远程控制命令:查看远程系统信息、剪切板查看、进程管理、窗口管理、外设控制、服务管理、共享管理、代理服务、MS-Dos模拟、其它控制! 3.捕获屏幕:不但可以连继的捕获远程电脑屏幕,还能把本地的鼠标及键盘传动作送到远程实现实时控制功能! 4.注册表模拟器:远程注册表操作就像操作本地注册表一样方便!-a Trojan horse code a more comprehensive function. Document management : Die Fang Windows Explorer, on documents : copy, paste, delete, rename, long-distance running, and can upload or download files folder, easy and simple operation. 2. Remote control commands : View remote system information, Shear panel View, process management, window management, control of peripherals, service management, Sharing management, agency services, MS- Dos simulation and other control! 3. Capture screen : not only can not even following the capture remote computer screen, also to bring to the local traditional keyboard and mouse movements to achieve real-time remote control function! 4. Register Simulator : remote operation of the registry to operate like local registry as easy!
Platform: | Size: 1967104 | Author: 校风 | Hits:

[Delphi VCLNamePipeDelphi

Description: DELPHI与其它进程通信,用NamePipe做的,建立了事件驱动模式,与C#的互相通信请查看另一个Named PipesCSharp.rar的C#代码,-DELPHI process with other communications, NamePipe to do with the established event-driven model, with the C# Mutual communication, please view the other Named PipesCSharp.rar the C# Code
Platform: | Size: 193536 | Author: zhangheyang | Hits:

[Internet-Networktcp

Description: 进程查看可获取路径及系统端口,TCP/UDP信息-Process view can be accessed path and system port, TCP/UDP information
Platform: | Size: 62464 | Author: q1w2e3e3w2q1 | Hits:

[Remote Controlspy

Description: 实现远程计算机CPU当前使用率,内存使用率,进程创建、终止,文件操作,网络数据包监视,可查看、 关闭系统当前控制进程。可运行远程控制台(完全等同于本机操作),控制台命令已知cd命令无效。 注销远程用户登陆,关闭、重启计算机,给远程计算机发送消息-Remote computer CPU current usage, memory usage, process creation, termination, file operations, network packet monitoring, to view, the current control of the process to shut down the system. Can run a remote console (exactly the same as the local operation), the console command known cd command is invalid. Write-off of the remote user login, shut down, restart your computer, send messages to the remote computer
Platform: | Size: 189440 | Author: 断流风 | Hits:

[ADO-ODBCdata-view

Description: 一个数据库实时显示数据的程序,还能和其他程序通信。-A database display data in real-time process, but also communication and other procedures.
Platform: | Size: 3487744 | Author: 麻果历 | Hits:

[OS program123

Description: 查看进程,并能查看进程引用的DLL,有结束进程和保存列表功能。(附原码)-View the process and can view the process of quoting the DLL, there is the end of the process and preservation of the list of features. (With the original code)
Platform: | Size: 731136 | Author: 大漠驼铃 | Hits:

[Firewall-SecurityDarkStRat2008V1.0

Description: DarkstRat2008 V1.0 开源版 1.系统信息:可以查看操作系统版本、Cpu类型、内存信息、杀毒软件、防火墙、硬盘大小等 2.文件管理:文件浏览、上传、下载、删除、运行 目录创建和删除。 3.超级终端:也就是telnet命令执行 4.进程管理:可以查看对方进程,并可以终止进程。 5.注册表管理:可以浏览、删除、新建、修改 6.服务管理功能:可以浏览、启动、停止、新建、删除 7.窗口管理功能:最大化、最小化、关闭、隐藏窗口、发送键盘信息。 8.发送消息:发送一些提示远程用户信息、可以返回用户的选择结果 9.恶作剧:鼠标抖动、锁定鼠标、颠倒鼠标按键、开启关闭光驱、隐藏桌面图标、禁用开始按钮、隐藏任务栏-DarkstRat2008 V1.0 open source version 1. System Information: You can view the operating system version, Cpu type, memory information, antivirus software, firewalls, hard drive size, etc. 2. Document Management: file browser, upload, download, delete, run directory created and delete. 3. HyperTerminal: that is, the implementation of telnet command 4. Process Management: You can view each other s process, and may terminate the process. 5. Registry Management: can browse, delete, new, modified 6. Service Management function: You can browse, start, stop, new, delete 7. Window management functions: to maximize, minimize, close, hidden window, send keyboard information . 8. Send a message: Send some tips remote user information, you can return to the user s choice of the results ...
Platform: | Size: 266240 | Author: yysky | Hits:

[Windows Developloubingtt_20031022194028

Description: 包含进程、服务、端口查看的源代码-Contains the process, services, port to view the source code. . . . . . .
Platform: | Size: 350208 | Author: tlHelen | Hits:

[Delphi VCLacm

Description: 完美acm语音(audio)delphi开发控件: znACM ver5.1 完美的封装了微软的 acm 语音相关的函数,用于语音采集(录音),语音播放,使用简单(10分钟学会使用),可控制性强,容易扩展。 从使用角度出发,切合程序制作者的实际需要,解决了一般商用语音控件没有解决的问题。 真正好用的acm控件。适合delphi5 delphi6 delphi7-Acm perfect voice (audio) delphi development control: znACM ver5.1 perfect package acm Microsoft' s voice-related functions, for voice capture (recording), voice playback, using simple (10 minutes to learn how to use), can be controlled strong, and easy expansion. From the use of point of view, the production process to meet the practical needs to address the general commercial voice control does not solve the problem. Acm true-to-use controls. Suitable for delphi5 delphi6 delphi7
Platform: | Size: 44032 | Author: mutou | Hits:

[OS programShowUseage

Description: 简直和WinXP系统自带的一模一样,功能和界面都一样,只是开发语言不同,系统的是用C写的,这是用DELPHI写的 此程序主要实现取系统的应用程序列表、取系统的所有进程的相关信息(映像名称,PID,CPU时间,内存使用)、实时取CPU的得用率并以波浪线来描绘、实时取内存的使用记录,并以波浪线来描绘。同时也实现了,结束任务,新建任务,及切换至等功能。“选项菜单”只实现了“总是最前”,“查看菜单”只实现了“更新速度”。主要没有实现的功能,是取各个进程的CPU利用率和在系统托盘显示CPU线的效果。 程序中使用了几个网友作品的算法:如画CPU使用率的背景的效果,取CPU利用率的算法等都非本人原创的(作了部分修正)。 -WinXP system and it comes with exactly the same functionality and interface are the same, but different development language, the system is written in C, it is written in DELPHI The main implementation of this process the application check list system, check system for all process-related information (Image Name, PID, CPU time, memory usage), real-time access to use the rate of the CPU and to describe the wave line, real-time memory access the use of records, and to describe the wave line. Implementation at the same time, the end of mission, new mission, and to switch to other functions. "Options menu" only to realize the "always best before", "View menu" only achieve the "update speed." Did not achieve the main function is to check the CPU utilization of all process and in the system tray shows the effect of CPU line. Procedures used in some users of the algorithm works: CPU utilization rate of the background of picturesque effect, the algorithm check CPU utilization, I have non
Platform: | Size: 333824 | Author: 法激 | Hits:

[Delphi VCLHRXT

Description: 本系统是结合行业管理中实际的人力资源、工资制度,经过实际的需求分析,采用功能强大的Delphi 7做为开发工具,SQL SERVER 2000做为数据库开发出来的单人力资源管理系统。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成人力资源、工资管理的全过程,使得人力资源管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑企业人力资源规划和政策。-The trade management system is a combination of the actual human resources, wage system, the demand for actual analysis, the use of powerful development tools Delphi 7 as, SQL SERVER 2000 database developed as a single human resources management system. From the whole system in line with the simple, user-friendly, flexible, practical and safety requirements, the completion of human resources, payroll management, the whole process of making human resource managers to shake off the heavy day-to-day work to focus on from a strategic point of view of the enterprise human resources planning and policies.
Platform: | Size: 1072128 | Author: 呆书书 | Hits:

[GUI DevelopProgressBead-like

Description: 类似旧版Flashget的下载进度窗口, 小砖会根据下载的进度而向前滚动-like the download process view of the old version Flashget, a color brick will move forward as downloaded bytes increses.
Platform: | Size: 174080 | Author: pengweizhi | Hits:

[CA authNOX5

Description: 感谢您选择龙脉科技加密产品!本文档帮助您快速完成加密保护工作。 以下建议旨在帮助您快速开展后面的工作: 1请认真阅读密码单中重要信息。 2将锁插入USB接口中,待指示灯点亮后继续下面的步骤。 3请在sample目录中找到您熟悉的开发语言或环境的例子,运行例程,参考这些例程了解加密锁API的使用方法。 4参考过程中,如果遇到陌生的概念或参数,请在help目录中查看帮助文档。 5熟悉了API的使用方法之后,在tools目录下运行设号工具,设置锁的相关 参数,请牢记超级密码。 6经过以上准备工作之后,现在您就可以尝试将锁应用到您的工程中去了。-Thank you for choosing Dragon technology encryption products! This document helps you to quickly complete the encryption protection. The following recommendations are designed to help you quickly to carry out the back of work: 1 Please carefully read the important information in a single password. 2 will be locked into USB interface until the indicator light will continue after the following steps. 3 in the sample directory to find your familiar examples of development language or environment, running routines, make reference to these routines to understand encryption lock API is used. 4 refer to the process, if you encounter an unfamiliar concept or argument, please help directory view Help documentation. 5 familiar with the API to use later, in tools directory, run the numbers based tool, set the lock associated Parameters, Keep in mind that super password. 6 After the above preparations, now you can try to lock applied to your project went.
Platform: | Size: 37556224 | Author: 刘海滨 | Hits:

[Delphi/CppBuilder查看进程

Description: 提升至系统权限查看所有进程调用的DLL模块的清单, delphi 7 编译(up to system privilige to view all proecss loaded dll modules, delphi 7 compile.)
Platform: | Size: 209920 | Author: teddy wolf | Hits:
« 12 »

CodeBus www.codebus.net