Delphi 11.1 Alexandria dostupné

vložil Radek Červinka 16. března 2022 00:43

Je dostupná aktualizace Delphi 11.1 . Aktualizace je binárně kompatibilní s D11, tj. dcu a komponenty z D11 se dají použít bez rekompilace.

Delphi 11.1

Musím říct, že jsem se na okamžik kdy bude nový update oficiálně dostupný těšil z prostého důvodu, že jeho testovací verze používám delší dobu a vím na co se těšit.

Verze Delphi 11.1 se soustředí na kvalitu a "štelování" toho co bylo zásadní pro Delphi 11, tj. např. LSP, High DPI IDE, Welcome page bez exploreru, ladění atd.

Platformy: oficiální podpora Windows 11, macOS 12 Monterey, iOS 15 a Android 12

Zkusím některé věci co mne zajímají vyzvihnout. Ale nejdříve nezbytnosti:

IDE

Pro mne zásadní věc: Remote Desktop optimalizace, tj. IDE je lépe optimalizované pro vzdálenou plochu a spol. Nebudu vypisovat desítky úprav, ale ze spousty drobností zaujme především barevný výpis chyb při kompilaci, zvyrazňující jinak chyby nebo warningy a compile progress dialog s podobnými úpravami.

Data moduly ukládájí PixelsPerInch i v případě 96 DPI (to samé VCL formuláře).

Dynamicky vytvářené Frame škálují korektně i když jsou navrženy v high DPI.

Welcome Page má svoje API, takže si můžete vytvořit svoje vlastní podokno, třeba s úkoly, které zase nestihnete (demo pluginy).

Tady bych rád připomněl, že i IDE můžete spustit bez high DPI podpory, což je vhodné pokud narazíte na problém - je tam na to položka v start menu Delphi 11 (DPI Unaware).

LSP

Delphi LSP jak jsem několikrát psal, je v podstatě stejný delphi kompilátor spuštěný v jiném módu, ale v 11.1 byl tento mód při načítání zrychlen (podle testů 5 - 30x). Jak je to možné? V D11 se prováděla např. pro napovídání kompilace celé importované jednotky, kdežto nyní v tomto případě zjednodušeně kompilátor jen prochází interface sekci importovaných jednotek (to samozřejmě neplatí v rámci jednotky) a předkládá symboly z těchto interface. To lze hlavně poznat, pokud máte hodně závislostí.

Něco co jsem osobně reportoval dříve: CTRL+click na alias typu např. IntArray = TArray<Integer> dříve vedlo na TArray, nyní na ten alias.

LSP přináší další a další vylepšení.

Kompilátory a Debuggery

Delphi kompilátor nově přidává podporu pro zabezpečení přes ASLR, DEP/NX a TSAWARE a je to ve výchozím módu zapnuto (Project Option - Linking - Data Execution Prevention). Významným krokem jsou nové debuggery pro Delphi Android64 a Delphi macOS 64-bit ARM, nově na bázi LLDB (dříve jen Delphi iOS 64-bit debugger). Předchozí verze byla na bázi GDB. Cílem je sjednotit kód, zlepšit stabilitu a obecně použít modernější technologii.

Android kompilace: DEX kompilace a DEX merge jsou nyní až po linkování, což zrychluje kompilaci bez deploy (mohu jen potvrdit)

VCL, RTL, FMX

TOSVersion má podporu pro Windows 11 (dostupné až po vydání D11), dále vylepšeno TTreeView, TRichEdit, TEdgeBrowser, TLabelledEdit a TNumberBox, řešeny problémy s High DPI, flickering, doublebuffering. FMX převážně optimalizace, TWebBrowser. Ohledně DB: MariaDB 10.6, SQLite SEE a lepší podpora Firebirdu 4.

Nový TURLStream class, což by měl být následník nové třídy TAsyncStream s podporou pro async operace (nezkoušel jsem).

Symboly FRAMEWORK_VCL a FRAMEWORK_FMX nově umožňují rozlišit VCL a FMX např. v nevizuálním kódu.

Optimalizace _CopyArray, _IntToStr64, _IntToStr32, InitInstance, InvokeRecordInitializer, _FinalizeRecord, _UStrAsg , _LStrAsg, _LStrLAsg, AnsiLowerCase / AnsiUpperCase a TStringHelper.IndexOf.

TMemIniFile změněna pro lepší kompatibilitu s pre-10.3, kde to bylo pomalé, ale bylo možné mít duplicitní sekce.

Pro zajímavost WebBroker pro Android, což je mi úplně jedno, dokud nebude dostupný oficiálně kompilátor pro Linux ARM (RSP-13370 pokud chcete volit), tj. Raspberry PI a spol, jak je naznačeno v roadmapě archív roadmap.

Tagy: ,

Aktualizace | Delphi

Komentáře

24.3.2022 10:11:21 #

Roman Krupička

Zdravím,
trochu jsem si hrál s High DPI. A mám dojem, že tam mají chybu při načítání děděných formulářů.
Pokud mám Unit1 s TForm1 = class(TForm) a Unit2 s TForm2 = class(TForm1) a každý má uloženo
jiné PixelsPerInch, tak se poděděný formulář zobrazí v jiné velikosti. A to dokonce i v IDE.
Problém je to u rozsáhlejších projektů, kdy do předka někdo zasáhne a uloží s jinou hodnotou PixelsPerInch,
protože má jinak nastavený monitor.

Chyba je dle mých výzkumů v tom, že se vezme PixelsPerInch z daného formuláře a aplikuje se i na rozměry
uložené v předkovi. Jenomže ty jsou uloženy pro jiné PPI.
A není to chyba Delphi 11.1, ale co jsem zkoušel, tak i Delphi 11.0.

Roman Krupička

Komentování ukončeno

Naše nabídka

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

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

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.

Poslední komentáře

Comment RSS

Dle měsíců