Hrst informací, tak jak mne napadají ohledně Delphi XE2.
Delphi XE2 přináší 64bit kompilaci. Přepnutí platformy provedete jednoduše v Project Manageru.
Samotné IDE je 32bit, což mimochodem znamená, že můžete přeložit 64bit aplikaci na 32bit Windows, ale už ji tam nespustíte. Ale můžete použít vzdálené ladění k 64bit PC, jelikož z už uvedeného důvodu je ladění všech 64bit aplikací prováděno jako remote (tj. i když to ladíte lokálně) tak je to úplně jedno.
Mimochodem to znamená, že design time packages musí být 32bit (a to i pro 64bit komponenty).
Což také mimochodem znamená, že pokud u debug verze nebudete mít "Include Remote Debug Symbol" zašktnuto, nebude moci ladit. U nových projektů je to automaticky zašktnuto, při importu starších to doporučuji zkontrolovat.
Jak jsem již psal, jsou všechny jednotky VCL a RTL doplněny na tečkovou notaci (UnitScope). Např. Buttons.pas na VCL.Buttons.pas, Classes na System.Classes, Messages na WinApi.Messages.
Kromě toho zatím existuje Posix., Macapi., FMX. (FireMonkey), Data.Bind., Xml. a možná další.
Jednotky System a SysInit jsou stejné. Samozřejmě, Delphi umí přeložit i kód bez UnitScope. Je to zajištěno pomocí nastavení v Options. Vhodným odstraněním nepoužívaných UnitScope lze trošku urychlit kompilaci.
Zároveň si všimněte toho: .\$(Platform)\$(Config). To určuje že se nebudou míchat platformy. Doporučuji zkontrolovat.
Pokud to totiž budete míchat, mohou se Vám objevit zajímavé hlášky při kompilaci o špatném unit formátu a co očekává, např. Windows Unicode (x86), což mne zaujalo. Když jsem se díval jaké platformy to umí rozeznávat tak jsem byl celkem překvapen.
Odhaduji, že poslední 4 řetězce jsou procesory, zbytek jsou platformy (možná i z předchozích produktů - třeba Windows Ansi). Ale to tak opravdu hádám (iOS bude asi MacOS - ARM). Ale celkem mne potěšilo ARM. Kdosi prý na některém zastavení World Tour prozradil, že možná již během cyklu XE2 bude FPC nahrazeno vlastním ARM kompilátorem pro iOS, ale znáte to: JPP (jedna paní povídala). Ale je pravdou, že nový kompilátor (jehož první inkarnací je stávající dcc64) byl stavěn na flexibilnost a rozšiřitelnost.
Jen připomínám, že se kompilátor rozdělil na FrontEnd a BackEnd. FrontEnd je část, která parsuje zdrojáky a provádí (nejméně) kontrolu syntaxe. Tato část podle informací zůstala jen s minimálními změnami pro zachování co největší kompatibility. BackEnd je čast, která provádí vlastní generování kódu a tato je úplně nová - dcc64.
Definované symboly
Win32: DCC, VER230, MSWINDOWS, WIN32, CPU386, CPUX86, ASSEMBLER,
UNICODE, NATIVECODE
Win64: DCC, VER230, MSWINDOWS, WIN64, CPUX64, ASSEMBLER, UNICODE,
NATIVECODE
OS X: DCC, VER230, MACOS, MACOS32, CPU386, CPUX86, ASSEMBLER, UNICODE,
NATIVECODE, PIC, POSIX, POSIX32, ALIGN_STACK, PC_MAPPED_EXCEPTIONS
Změny data modulu
Jelikož bylo nutné zajistit ať se FMX aplikace nedají vložit ne FMX komponenty, byla do Data Modulu přidána "virtual property" nazvaná ClassGroup. Jedná se v podstatě o filter, který určuje skupinu tříd, která se tam dá vložit. Přednastaveno je "System.Classes.TPersistent", ale pokud vyberete "Vcl.Controls.TControl" bude se to chovat jako dříve (tj. budete moci vkládat TPopupMenu, TImageList, TActionList…).
Změny ohledně ikony aplikace
Ikona aplikace je nově uložena samostatně na disku. Pokud ji chcete změnit, lze to obvyklým způsobem, ale po změně budete dotázáni
Jméno vybraného souboru je pak uloženo v .dproj.
Komponenty třetích stran
Hodně věcí je na Partner DVD (ISO), viz. CodeCentral, ale namátkou
CnPack, JCL XE2, JVCL XE2. Stav TMS komponent.
Můj milovaný Virtual TreeView je oficiálně kompatibilní v módu 32bit, neoficiálně existuje i 64bit verze - snad se to brzo dostane do hlavního stromu. Update - už je tam.
Jo a nezapomeňte na registrace předchozích verzí v ceně. Příště budeme pokračovat, ale klidně se ptejte. Třeba budu vědět.