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
1-Note: some new Delphi features are already implemented in [[FPC New Features Trunk|FPC trunk]].
1+Note: some new Delphi features are already implemented in [[FPC New Features Trunk|FPC trunk]].
22
33## New since D4
44
55### Exporting of overloaded functions
66
7-(version not entirely sure, but came in with overloading, so definitely pre-D6)
8-
9-In library packages select an overloaded variant to export. Assume we have some overloaded methods:
10-
11-function doSomeThing(a:type1):type2;stdcall; function doSomeThing(a:type3):type4;stdcall;
7+(version not entirely sure, but came in with overloading, so definitely pre-D6)
128
13-and in the library (for building the dll using the unit above) we want to export them:
9+In library packages select an overloaded variant to export. Assume we have some overloaded methods:
10+```
11+function doSomeThing(a: type1): type2; stdcall;
12+ function doSomeThing(a: type3): type4; stdcall;
13+```
1414
15+and in the library (for building the dll using the unit above) we want to export them:
16+```
1517exports
16-
17-```text
18- doSomeThing(a:type1) name 'doSomeThingTYPE1',
19- doSomeThing(a:type3) name 'doSomeThingTYPE3';
18+ doSomeThing(a: type1) name 'doSomeThingTYPE1',
19+ doSomeThing(a: type3) name 'doSomeThingTYPE3';
2020```
2121
2222### implements delegation of interfaces
2323
24-Delegating interfaces to classes is not always supported,
24+Delegating interfaces to classes is not always supported,
2525
26-- [Mantis 16531](http://bugs.freepascal.org/view.php?id=16531)
27-- [Mantis 8591](http://bugs.freepascal.org/view.php?id=8951)
28-- [Mantis 23403](http://bugs.freepascal.org/view.php?id=23403)
26+ * [Mantis 16531](<http://bugs.freepascal.org/view.php?id=16531>)
27+ * [Mantis 8591](<http://bugs.freepascal.org/view.php?id=8951>)
28+ * [Mantis 23403](<http://bugs.freepascal.org/view.php?id=23403>)
2929
3030## New since Delphi 2007
3131
3232## New since Delphi 2009
3333
3434#### Anonymous Methods
3535
36-1. <http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/anonymousmethods_xml.html>
37-2. <http://delphi.about.com/od/objectpascalide/a/understanding-anonymous-methods-in-delphi.htm>
36+ 1. <http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/anonymousmethods_xml.html>
37+ 2. <http://delphi.about.com/od/objectpascalide/a/understanding-anonymous-methods-in-delphi.htm>
3838
3939Supported since 3.3.1: [[FPC New Features Trunk|Support for Function References and Anonymous Functions]]
4040
4141## New since Delphi 2010
4242
4343#### Custom Attributes
4444
45-Custom 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.
45+Custom 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.
4646
4747<http://delphi.about.com/od/oopindelphi/a/delphi-attributes-understanding-using-attributes-in-delphi.htm>
4848
4949Supported since 3.3.1: [[Custom Attributes]]
5050
5151#### Enhanced RTTI
5252
5353<http://docwiki.embarcadero.com/RADStudio/en/RTTI_directive_(Delphi)>
5454
5555#### Delayed directive
5656
57-Info is here: <http://docwiki.embarcadero.com/RADStudio/en/Libraries_and_Packages#Delayed_Loading> Some info about internals:
57+Info is here: <http://docwiki.embarcadero.com/RADStudio/en/Libraries_and_Packages#Delayed_Loading> Some info about internals:
5858
59-1. <http://blogs.embarcadero.com/abauer/2009/08/25/38894>
60-2. <http://blogs.embarcadero.com/abauer/2009/08/29/38896>
61-3. <http://blogs.embarcadero.com/chrishesik/2009/11/02/35056>
59+ 1. <http://blogs.embarcadero.com/abauer/2009/08/25/38894>
60+ 2. <http://blogs.embarcadero.com/abauer/2009/08/29/38896>
61+ 3. <http://blogs.embarcadero.com/chrishesik/2009/11/02/35056>
6262
6363fpc wiki about that topic: <http://wiki.freepascal.org/Dynamically_loading_headers>
6464
65-Originally 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 13:45, 18 January 2013 (UTC)
65+Originally 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)
6666
6767## Misc
6868
69-1. [[packages|(Library) packages]]
70-2. "automated" keyword, which is like "public", but generates COM specific RTTI. Afaik this kind of COM usage is deprecated though.
69+ 1. [[packages|(Library) packages]]
70+ 2. "automated" keyword, which is like "public", but generates COM specific RTTI. Afaik this kind of COM usage is deprecated though.
7171
7272## Already implemented
7373
7474### FPC 3.0.4
7575
7676#### Advanced records
7777
7878<http://docwiki.embarcadero.com/RADStudio/en/Structured_Types#Records_.28advanced.29>
7979
8080### FPC 2.6.0
8181
8282#### AS and IS extended for interfaces
8383
84-New since Delphi 2010. Info is here:
84+New since Delphi 2010. Info is here:
8585
86-1. <http://docwiki.embarcadero.com/RADStudio/en/Interface_References#Casting_Interface_References_to_Objects>
87-2. <http://blogs.embarcadero.com/abauer/2009/08/21/38893>
86+ 1. <http://docwiki.embarcadero.com/RADStudio/en/Interface_References#Casting_Interface_References_to_Objects>
87+ 2. <http://blogs.embarcadero.com/abauer/2009/08/21/38893>
8888
89-Implemented in FPC 2.6.0.
89+Implemented in FPC 2.6.0.
9090
9191## Reference
9292
93-1. <http://edn.embarcadero.com/article/34324>
94-2. <http://edn.embarcadero.com/article/images/39076/New_Delphi_Coding_Styles_and_Architectures.pdf>
95-3. <http://docwiki.embarcadero.com/RADStudio/en/What's_New_in_Delphi_and_C%2B%2BBuilder_2010>
93+ 1. <http://edn.embarcadero.com/article/34324>
94+ 2. <http://edn.embarcadero.com/article/images/39076/New_Delphi_Coding_Styles_and_Architectures.pdf>
95+ 3. <http://docwiki.embarcadero.com/RADStudio/en/What's_New_in_Delphi_and_C%2B%2BBuilder_2010>
9696
9797---
98-*From the Free Pascal wiki, page "Delphi language features missing from the Free Pascal Compiler", as it stood on 2023-08-08 after a change by Mattias2, out of the wiki's dump of 2024-05-26. 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).*
99-Category: Delphi
100-Category: FPC
98+*From the Free Pascal wiki, page "Delphi language features missing from the Free Pascal Compiler", as the Internet Archive kept it on 2025-05-16, last changed on 2025-02-04. 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