Sign in Join
Wiki copytemporary

Delphi language features missing from the Free Pascal Compiler: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11Note: some new Delphi features are already implemented in [[FPC New Features Trunk|FPC trunk]].
22
3-## Contents
4-
5- * 1 New since D4
6- * 1.1 Exporting of overloaded functions
7- * 1.2 implements delegation of interfaces
8- * 2 New since Delphi 2007
9- * 3 New since Delphi 2009
10- * 3.1 Anonymous Methods
11- * 4 New since Delphi 2010
12- * 4.1 Custom Attributes
13- * 4.2 Enhanced RTTI
14- * 4.3 Delayed directive
15- * 5 Misc
16- * 6 Already implemented
17- * 6.1 FPC 3.0.4/trunk
18- * 6.1.1 Advanced records
19- * 6.2 FPC 2.6.0
20- * 6.2.1 AS and IS extended for interfaces
21- * 7 Reference
22-
233## New since D4
244
255### Exporting of overloaded functions
266
277(version not entirely sure, but came in with overloading, so definitely pre-D6)
288
299In library packages select an overloaded variant to export. Assume we have some overloaded methods:
3010
3111function doSomeThing(a:type1):type2;stdcall; function doSomeThing(a:type3):type4;stdcall;
3212
3313and in the library (for building the dll using the unit above) we want to export them:
3414
3515exports
3616```
3717doSomeThing(a:type1) name 'doSomeThingTYPE1',
3818 doSomeThing(a:type3) name 'doSomeThingTYPE3';
3919```
4020
4121### implements delegation of interfaces
4222
4323Delegating interfaces to classes is not always supported,
4424
4525 * [Mantis 16531](<http://bugs.freepascal.org/view.php?id=16531>)
4626 * [Mantis 8591](<http://bugs.freepascal.org/view.php?id=8951>)
4727 * [Mantis 23403](<http://bugs.freepascal.org/view.php?id=23403>)
4828
4929## New since Delphi 2007
5030
5131## New since Delphi 2009
5232
5333#### Anonymous Methods
5434
5535 1. <http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/anonymousmethods_xml.html>
5636 2. <http://delphi.about.com/od/objectpascalide/a/understanding-anonymous-methods-in-delphi.htm>
5737
5838## New since Delphi 2010
5939
6040#### Custom Attributes
6141
6242Custom Attributes are a language feature in Delphi that allow annotating types and type members with special objects that carry additional information. Attributes extend the object-oriented model with aspect-oriented elements.
6343
6444<http://delphi.about.com/od/oopindelphi/a/delphi-attributes-understanding-using-attributes-in-delphi.htm>
6545
6646#### Enhanced RTTI
6747
6848<http://docwiki.embarcadero.com/RADStudio/en/RTTI_directive_(Delphi)>
6949
7050#### Delayed directive
7151
7252Info is here: <http://docwiki.embarcadero.com/RADStudio/en/Libraries_and_Packages#Delayed_Loading> Some info about internals:
7353
7454 1. <http://blogs.embarcadero.com/abauer/2009/08/25/38894>
7555 2. <http://blogs.embarcadero.com/abauer/2009/08/29/38896>
7656 3. <http://blogs.embarcadero.com/chrishesik/2009/11/02/35056>
7757
7858fpc wiki about that topic: <http://wiki.freepascal.org/Dynamically_loading_headers>
7959
8060Originally I thought that delayed is similar to weakexternal which FPC has for some platforms but after reading this: <http://docwiki.embarcadero.com/CodeExamples/XE3/en/DelayedLoading_(Delphi)> I understand that this is simply a wrapper around LoadLibrary and GetProcessAdress with automatic loading and unloading.--[Paul Ishenin](</User:Paul_Ishenin> "User:Paul Ishenin") 13:45, 18 January 2013 (UTC)
8161
8262## Misc
8363
8464 1. [[packages|(Library) packages]]
8565 2. "automated" keyword, which is like "public", but generates COM specific RTTI. Afaik this kind of COM usage is deprecated though.
8666
8767## Already implemented
8868
8969### FPC 3.0.4/trunk
9070
9171#### Advanced records
9272
9373<http://docwiki.embarcadero.com/RADStudio/en/Structured_Types#Records_.28advanced.29>
9474
9575### FPC 2.6.0
9676
9777#### AS and IS extended for interfaces
9878
9979New since Delphi 2010. Info is here:
10080
10181 1. <http://docwiki.embarcadero.com/RADStudio/en/Interface_References#Casting_Interface_References_to_Objects>
10282 2. <http://blogs.embarcadero.com/abauer/2009/08/21/38893>
10383
10484Implemented in FPC 2.6.0.
10585
10686## Reference
10787
10888 1. <http://edn.embarcadero.com/article/34324>
10989 2. <http://edn.embarcadero.com/article/images/39076/New_Delphi_Coding_Styles_and_Architectures.pdf>
11090 3. <http://docwiki.embarcadero.com/RADStudio/en/What's_New_in_Delphi_and_C%2B%2BBuilder_2010>
11191
11292---
11393*From the Free Pascal wiki, page "delphi language features which fpc does not have", as the Internet Archive kept it on 2022-10-01, last changed on 2021-06-12. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history