Difference between revisions of "Delphi language features missing from the Free Pascal Compiler"

From Free Pascal wiki
Jump to navigationJump to search
Line 7: Line 7:
 
http://docwiki.embarcadero.com/RADStudio/en/Structured_Types#Records_.28advanced.29
 
http://docwiki.embarcadero.com/RADStudio/en/Structured_Types#Records_.28advanced.29
  
Record constructors are implemented in trunk.
+
Advanced records are implemented in FPC 2.6.X without record constructors. Record constructors are implemented in FPC 2.7.1 (trunk).
  
 
== New since Delphi 2009 ==
 
== New since Delphi 2009 ==

Revision as of 13:36, 16 January 2013

Note: some of new Delphi features are already implemented in FPC trunk.

New since Delphi 2007

Advanced Records

http://docwiki.embarcadero.com/RADStudio/en/Structured_Types#Records_.28advanced.29

Advanced records are implemented in FPC 2.6.X without record constructors. Record constructors are implemented in FPC 2.7.1 (trunk).

New since Delphi 2009

Generics Syntax

A good delphi reference is here: http://docwiki.embarcadero.com/RADStudio/en/Generics_Index

Partially implemented in 2.5.1/2.6.x, further improved in 2.7.1 by Sven

Support for ansistrings with a definable codepage

Initial implementation available in trunk (2.7.1). Useful for small time testing, but the whole of the codebase hasn't adapted (2011-10-18)

Anonymous Methods

http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/anonymousmethods_xml.html

New since Delphi 2010

Custom Attributes

Enhanced RTTI

http://docwiki.embarcadero.com/RADStudio/en/RTTI_directive_(Delphi)

Delayed directive

Info is here: http://docwiki.embarcadero.com/RADStudio/en/Libraries_and_Packages#Delayed_Loading Some info about internals:

  1. http://blogs.embarcadero.com/abauer/2009/08/25/38894
  2. http://blogs.embarcadero.com/abauer/2009/08/29/38896
  3. http://blogs.embarcadero.com/chrishesik/2009/11/02/35056

fpc wiki about that topic: http://wiki.freepascal.org/Dynamically_loading_headers

AS and IS extended for interfaces

Info is here:

  1. http://docwiki.embarcadero.com/RADStudio/en/Interface_References#Casting_Interface_References_to_Objects
  2. http://blogs.embarcadero.com/abauer/2009/08/21/38893

Misc

  1. (Library) packages
  2. "automated" keyword, which is like "public", but generates COM specific RTTI. Afaik this kind of COM usage is deprecated though.

Reference

  1. http://edn.embarcadero.com/article/34324
  2. http://edn.embarcadero.com/article/images/39076/New_Delphi_Coding_Styles_and_Architectures.pdf
  3. http://docwiki.embarcadero.com/RADStudio/en/What's_New_in_Delphi_and_C%2B%2BBuilder_2010