class helper
Syntax
Class helpers allow you to extend the interface of an object instance without inheriting from it.
TStringsHelper = class helper for TStrings
public
  function Contains(const Value : string) : boolean;
end;
function TStringsHelper.Contains(const Value : string) : boolean;
begin
  Result := IndexOf(Value) <> -1;
end;
Further examples
David Glassborow discusses the pros and cons of class helpers and gives examples of class helpers for TStream, TCanvas, TList, TDataSet, TField, TTreeNodes and TRect.
http://blogs.conceptfirst.com/blog/2006/05/08/class-helpers-good-or-bad/
David Glassborow provides more example class helpers for TList, TStrings and TStream.
http://blogs.conceptfirst.com/blog/2007/01/14/useful-delphi-code/
Serg at The Programming Works uses class helpers to work around a bug in TFileStream.
http://sergworks.wordpress.com/2010/06/15/delphi-class-helpers-a-practical-example/
Alex Ciobanu (Emb.) uses class helpers to add Windows 7 taskbar behaviour to TCustomForm.
http://alex.ciobanu.org/?p=215
Jolyon Smith uses class helpers to add client side functionality to remoting library code.
http://www.deltics.co.nz/blog/?p=683
Jeroen Pluimers uses a class helper to obtain the unit name from an EAssertionFailed exception class.
http://wiert.wordpress.com/2009/05/06/delphi-class-helper-to-get-sourcefilename-from-an-eassertionfailed/
Zarko Gajic extends TStrings to accept data of multiple types using a class helper.
http://delphi.about.com/od/delphitips2008/qt/tstrings-helper.htm
Anders Melander extends TApplication with a class helper to retrieve the application version information.
http://melander.dk/articles/versioninfo/
Primoz Gabrijelcic describes how to add enumerators using class helpers.
http://www.thedelphigeek.com/2007/03/fun-with-enumerators-part-5-class.html
Mason Wheeler uses a class helper to add an enumerator to ThreadedQueue<T>
http://tech.turbu-rpg.com/250/tthreadedqueue-interesting-but-incomplete
Allen Bauer (Emb.) uses class helpers to allow a TControl to receive the results of an asynchronous task.
http://blogs.embarcadero.com/abauer/2008/09/26/38872
Jeroen Plumiers walks on the wild side by combining a class helper for TObject and a "with" statement.
http://wiert.wordpress.com/2009/04/27/delphi-bizarre-use-of-class-helpers-to-circumvent-with/
 
Further reading
Joe White investigates why virtual methods can't be declared inside class methods.
http://blog.excastle.com/2007/08/29/unfinished-delphi-feature-of-the-day-virtual-class-helper-methods/
StackOverflow discussion on the uses of class helpers.
http://stackoverflow.com/questions/253399/what-are-good-uses-for-class-helpers
 
The case against class helpers
Jolyon Smith presents a comprehensive argument against the use of class helpers, providing alternative constructs to accomplish a similar goal.
http://www.deltics.co.nz/blog/?p=273
Jolyon Smith continues his arguments against class helpers but describes a safer way to use them.
http://www.deltics.co.nz/blog/?p=282
Jolyon Smith surprises himself by finding a use for class helpers but still disapproves of the feature in general.
http://www.deltics.co.nz/blog/?p=683
Yet more discussion from Jolyon Smith on why class helpers are responsible for all the evil in the world.
http://www.deltics.co.nz/blog/?p=825
Tutorials
Mike Prestwood provides a comprehensive introduction to class helpers with discussions of their pros and cons and recommendations for their use.
http://www.prestwoodboards.com/ASPSuite/KB/Document_View.asp?QID=101869
Jim McKeeth delivers a CodeRage 2 video presentation on class helpers.
Alistair Christie presents a video introduction to class helpers
http://codegearguru.com/index.php?option=com_content&task=view&id=57&Itemid=27
Usage within Delphi
Allen Bauer (Emb.) discusses how class helpers were used to produce the non-breaking Delphi 2007 release.
http://blogs.embarcadero.com/abauer/2007/02/24/32322
Hallvard Vassbotn discusses the use of class helpers in Delphi 2007 using the example of the Vista glass properties to analyse their usage in great detail.
http://hallvards.blogspot.com/2007/03/review-delphi-2007-for-win32-beta-part_11.html
Mat DeLong reveals a dirty little secret about class helpers. Since D2010 they allow access to private variables.
http://mathewdelong.wordpress.com/2011/11/08/gaining-access-to-private-fields-of-a-class/