|
|
Why Advertise? |
These pages provide information for the entire Delphi
community, for free. As a result I have implemented sponsored
advertising to help subsidize the operation of this site, so if you're
feeling adventurous then go ahead, have a click and see where it takes
you :)
|
|
Downloads |
Downloads for these samples can be found
here.
|
|
Delphi-Jedi
|
|
For more great open source components, controls and
headers please visit the Joint Endeavor of Delphi
Innovators (Delphi JEDI) site:

|
|
|
Delphi::Advance
Advanced Delphi Development
Welcome to the EvoCorp "Delphi::Advance" development site,
the site for advanced Delphi development topics and samples. These pages
have been put together to present information and code samples from some
of the more interesting projects that I have been involved in.
Most of the samples presented here are based around information
readily available on the Internet, so why present those samples here? Put
simply, a lot of samples and information available on the Internet isn't
as clear as perhaps it could be, contains a lot of C++ code (where not
everyone is able to convert code between C++ and Delphi) and contains
types, constructs and definitions not defined in the Delphi language.
Other code is simply based around API wrappers which I've built into
classes for easy implementation across multiple projects. Either way, the
Delphi community as a whole should benefit from this information.
Having said which, please review the licensing information, below,
and feel free to investigate any of the following articles/samples
presented below.
|
COM, DCOM and ActiveX Controls |
|
Active Documents |
Any information on active document development
in Delphi is rare, so here are some classes that present the starting
point for active document development (including class registration). This code also demonstrates automated
association of a MIME type with your class.
|
|
TMouseMonitorThread |
| Simple thread class for ActiveXForms enabling "live" mouse
notification for controls within an active form.
For example: Ordinarily TSpeedButton controls
have no idea where the mouse actually is in relation to their position
on an ActiveX form; this class provides that notification so that TSpeedButtons can react to a mouse hover.
|
|
Automated Class Registration |
|
Do you check to ensure that required COM classes have
been registered on your client's machine before running your
application? This code delivers three routines to check type library
and COM class registration, and to enable run-time type library
registration. |
| |
|
|
Internet Explorer and other
Internet |
|
Browser Helper Objects (BHO's) |
Shell code for BHO libraries (i.e., code that
can be used as the starting point for BHO development). Contains
registration code, distinguishes between Internet and Windows
Explorer and maintains a global BHO list, as the same process may
create multiple instances of your BHO.
|
|
ActiveX Hyperlinks (HLINK.DLL) Header |
Header unit containing interface and method definitions
from Microsoft's ActiveX Hyperlinks library. Also contains
definitions for the ITargetFrame2 and IUrlHistoryNotify interfaces.
|
|
Active Internet Documents |
This code extends the active
document class, presented above, enabling loading and saving of
information and implementation of HLINK functionality.
|
|
Determining whether the host application is Windows
Explorer or Internet Explorer. |
This code shows how to identify
what application is causing your BHO to be loaded. This is useful as
Windows Explorer also loads BHO's.
|
|
Internet Explorer Interface Information |
|
IWebBrowser2 |
Presents a list of interfaces that IWebBrowser2
supports from within Internet Explorer (i.e., the interfaces available
to your BHO).
|
|
Gnutella and Delphi |
|
A Delphi interface for
the Gnutella Network |
Have you ever wanted to implement your own Gnutella
client? This code shows you just how to do that!
|
| |
|
|
|
OpenTools
The OpenTools API enables Delphi developers to
create plugins for the Delphi IDE. |
|
This section is currently under construction. |
|
The OpenTools API enables Delphi developers to create
their own personal or corporate plugins to enhance the Delphi IDE. |
| |
|
|
|
Other Useful Code Samples
Although I developed this site with advanced Delphi development topics
in mind, I have made available some code samples that although simple are
reasonably "useful". |
|
GetFileNameComponent |
Simple function to crack filenames down
to their core components. Similar to the VCL functions ExtractFileName
and ExtractFilePath.
|
|
GetSystemError |
Simple function to return
the current, or convert a specific Win32 HRESULT error code into
human-readable format.
|
|
GetUserGroups |
Small unit for enumeration of local and global group
membership on NT systems only.
|
|
GetUserName |
|
Simple function to return the login name of the
current user as a string. |
| |
All code is presented under the
Mozilla Public License and may be used as you see fit under the terms of this
license.
Comments
 |
|
Code Comments |
|
I must admit that I haven't documented these samples perhaps as clearly as I should have,
and I do apologize in advance for any confusion or time taken to revise
anything you download from this site. |
 |
|
Comments to the Author |
|
If you have any comments, or require further information regarding any of
this code, please don't hesitate to contact me at the following e-mail
address:
delphi@evocorp.com
This link should automatically open an e-mail with the
subject "Advanced Delphi Development Comments" - please
leave the subject text "as-is"; I receive several hundred spam e-mails
a day and if your e-mail doesn't contain the keywords "Advanced
Delphi Development" in the subject it will automatically be deleted.
|
|