Embarcadero uvolnilo novou řádovou verzi RAD Studio 11 Alexandria. Po delším čase se změnilo číslování i v reakci na Windows 11 a za mne správné rozhodnutí.
Na úvod Wiki What's New, Release Notes a Feature Matrix.
K instalaci: instálator je částečně paralelizován kde to jde, takže je to trošku rychlejší. A druhá věc, že offline instalace je možná i přes gof soubor, který přihrajete k setupu - viz. release notes. A poslední: při instalaci je konečně zvolit adresář pro Catalog repository, takže to nemusí být na C:
Zásadní změnou je, že celé IDE je přizpůsobeno i velkým rozlišením a dobře škáluje. S tím souvisí i kompletní výměna ikon za nové, které se dokáží přizpůsobit velikosti. Celé je to postaveno na VCL PerMonitorV2 (od verze D10.3) a virtuálních image listech viz. můj článek o TVirtualImageList.
Obrázek jsem převzal od Marca Cantu.
S povolením změny DPI ale souvisí jedna zásadní věc - design formulářů. To se netýká FMX, tam je vše od začátku flexibilní, ale pro VCL je DPI uloženo v DFM. IDE má možnost nastavit jak se má chovat designer vůči DPI formulářů:
DPI je uloženo v DFM a formulář je za běhu škálován (scaled).
Aby to nebylo málo, byla přidána podpora preview designu pro VCL styly přimo v designeru (výchozí je vypnuto).
Z dalších novinek v IDE: lepší podpora současného zobrazení kódu a designeru - náhrada za starý floating designer, během instalace jsou instalovány i některé fonty např. consolas, ve FMX jsou přidány v designeru vodící linky a hlavně zbrusu nová, konfigurovatelná Welcome Page.
Z toho mám radost, protože stará byla na bázi embedded browseru, člověk si musel editovat html, když to chtěl přiohnout a bylo s tím čím dál více problémů. Nová je čistě VCL věc, navíc konfigurovatelná a v budoucnosti s podporou pluginu.
S tím souvisí i malý napůl oficiální hack, který zapne na welcome page navigaci jedním klikem.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\22.0\WelcomePage]
"ActivateLinkOnTitle"=dword:00000001
Delphi 10.4 přineslo LSP a D11 by mělo ostranit pár zbývajících drobností (převážně inc soubory) a přináší možnost použít LSP i v např. Visual Studio Code. LSP jsem bez vážných problémů používal už v 10.4 a kromě těch určitých inc souborů s tím nebyl nikdy problém.
U IDE bych ještě rád uvedl zrychlení otevírání Project a Tools Options - a to velmi výrazně (pro mne hlavně Project Option celkem věc). A pro mne důležitou věc: jak IDE, tak VCL má vylepšenu podporu pro remote desktop (např. optimalizace překreslování).
Co je nového v Delphi
Zásadní je přidání nové platformy macOS 64-bit ARM, tj. slavný Apple Silicon M1. Chápů, že u nás to není téma, ale ve světě je a Delphi má nativní podporu jako jedno z prvních vyjma Apple. V roadmapě bylo původně zmíněno FPU optimalizace pro Windows, ale to muselo ustoupit právě M1.
Z hlediska jazyka jsou to drobnosti, jako např. oddělovače řádu a binární čísla:
var
x: Integer;
const
AMillion = 1_000_000;
begin
x := %1001001; // binarni cislo
RTL
- TZipFile podporuje Zip64 a soubory >4 GB
- TMemoryStream by měl podporovat >2GB (asi jen v 64bit), ale nejen on
- TNoRefCountObject (non-reference-counted IInterface implementation)
- Optimalizace… např. Optimized _FinalizeRecord and _FinalizeArray, System.Pos
- přidána podpora pro HTTP / 2 ve windows (THttpClient)
- TLS 1.3 v TNetHTTPClient ve Windows
a mnoho dalšího
VCL
- TRichEdit Component aktualizován na RichEdit 4.1 (MSFTEDIT.dll) + patřičné atributy jako link nebo BackColor
- Memo a RichEdit Margins
- Radiogroup without frame (property ShowFrame, HeaderFont a DefaultHeaderFont)
- DropDownWidth pro TComboBox
- TTreeView podpora pro CheckBoxy (stejně je lepší VirtualTreeView ne?)
- TControl.RaiseOnNonMainThreadUsage (pokud vytváříte VCL prvek ve vlákně na pozadí)
- z dalších co mi přišlo zajímavé (viz. co je nového wiki)
- TScrollBox, automaticky podporuje mouse wheel
- VCL function ScaleImage podporuje Alpha Channel
- TWinControl podporuje LockDrawing a UnlockDrawing, ovlivňující provádění WM_SETREDRAW
FireMonkey
- Google Play Billing Library Version 4
- Android 30 API support (požadován googlem!)
- podporován “D8” DEX compiler
Závěr
IDE je rychlejší než kdykoliv předtím, ohledně kompilace už 10.4.2 byla rychlá jako blesk - podle mne nejrychlejší ze všech verzí, a pro mne překvapením bylo, že byla výrazně rychlejší než třeba D2007 při mnohem lepším jazyku. D11 je plus minus stejně rychlá ale co je zajímavé, EXE jsou menší a podle mne nezanedbatelně.
Už prázdná VCL aplikace v 10.4.2 - 2 578 432 bytes x 2 228 224 bytes v D11. Vypadá to podle porovnání map souboru na výsledek refaktoringu kolem generik.
Ohledně podporovaných platforem: stabilní stránka Platform Status ukazuje přehled napříč verzemi. Jen připomínám, že poslední oficiální verze podporující Windows XP je Delphi XE5, ale až do 10.4.2 to na XP fungovalo. Aktuální verze nastavuje u linkeru platformu pro Windows na 6.0, pokud chcete z nějakého zvláštního důvodu podporovat XP, musíte nastavit v projekt options verzi asi 5.1 a podle všeho asi upravit System.Threading aby nepoužíval GetTickCount64 jak mi napsal mitec.cz a on to musí vědět.