Delphi XE2 - pár informací

vložil Radek Červinka 4. září 2011 23:17

Hrst informací, tak jak mne napadají ohledně Delphi XE2.

Delphi XE2 přináší 64bit kompilaci. Přepnutí platformy provedete jednoduše v Project Manageru.

Project Manager

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).

Remote debugger

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.

Options

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.

Options

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.

Platform

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

Ico

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.


Nabízíme Delphi školení a konzultace na různá témata, primárně ve Vaší firmě.

Tagy:

Novinky v Delphi

Komentáře

5.9.2011 9:57:19 #

JaroB

Mám zajímavou chybu při převodu aplikace z Delphi XE do XE2
"[DCC Hint] H2161 Warning: Duplicate resource:  Type 24 (user-defined), ID 1; File C:\P\R\Units\PSP.res resource kept; file c:\program files\embarcadero\rad studio\9.0\lib\Win32\release\WindowsXP.res resource discarded."

v PSP.res je pouze ikona projektu (taková ta vícerozměrná) a taky fileinfo. nic jiného tam nevidím.

JaroB

5.9.2011 10:16:15 #

Radekc

Jak FileVersion, tak ikona nyní nejsou uloženy v res souboru.

Zkus tu ikonu přiřadit v Options.

Radekc

5.9.2011 10:20:17 #

JaroB

V podstatě došlo k tomu, že mi XE2 při načtení projektu z XE zničilo fileinfo (resp. vyčistilo všechny atributy) a vyjmulo ikonu do samostatného souboru PSP_Icon.ico. Netušil jsem, že to potřebuje nějakou daší magii pro res soubor projektu :(

JaroB

25.1.2012 10:40:46 #

Vladimír klaus

Malá poznámka k tomu WindowsXP.res... Je třeba vyhodit XPManifest komponentu (a následně Vcl.XPMan z Uses). Je to vlastně konflikt s Options > Application > Runtime Themes = Enable runtime themes

Typ přiřazení ikony s tím nemá nic společného.

Vladimír klaus

Komentování ukončeno

Naše nabídka

Partial English version.

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Anketa

Poslední komentáře

Comment RSS