Lazarus 0.9.26
Vyšiel nový Lazarus, ešte stále sa nejedná o stabilnú verziu, ale je to ďalší krok na ceste k nej. Aktuálna verzia je označená číslom 0.9.26 a vývojári si dali záležať! Tak čo nás to vlastne čaká v novej verzii? Pokúsim sa tu zvýrazniť najdôležitejšie zmeny, ich kompletný zoznam hľadajte na stránke projektu.
LCL Interface
Tu sa najväčšia zmena dotkla kódovania pre rozhrania win32/win64, reťazce sú teraz kódované v UTF-8.
Veľké zmeny LCL
Nové vlastnosti TForm.LCLVersion a TFrame.LCLVersion
- každý formulár a rámec ukladá do svojho informačného súboru aj informácie o verzii, podľa ktorých IDE automaticky prispôsobuje súbory lfm. Ak otvoríte nový lfm (0.9.26+) v starom IDE (0.9.24), dostanete chybové hlásenie TReader, že vlastnosť LCLVersion neexistuje – na odstránenie chyby stačí túto vlastnosť zmazať.
Unicode
- widgeset Win32 a LCL všeobecne teraz podporuje len UTF-8 reťazce;
- UTF8KeyPress je published;
- SelStart a SelLength sú zmenené aby vracali hodnoty v znakoch a nie v bytoch;
- rutiny FileUtil sú zmenené a doplnené tak, aby pracovali s menami v UTF-8;
- do jednotky LCLProc sú pridané reťazcové operácie (UTF8Copy, UTF8UpperCase, UTF8LowerCase);
- ďalšie podrobnosti sú v LCL Unicode Support.
Grafika
- pridaná nová trieda TRasterImage ako predok TCustomBitmap a TCustomIcon;
- grafiky nahratá zo súboru alebo resource je reprezontovaná interne a do podporovaného desktopového formátu je konvertovaná až podľa požiadavky na OS handles;
- opravené maskovanie. TCustomBitmap.Transparent, TCustomBitmap.TransparentColor, TCustomBitmap.TransparentMode sú plne kompatibilné s Delphi a funkčné;
- TIcon môže byť použitá pre nastavenie Form.Icon a Application.Icon;
- TImage má opravenú zobrazovanie preuhľadného pozadia;
- TImageList má schopnosť kresliť obrázok v piatich stavoch (viac tu).
Zaujímavé
- ButtonGlyphs teraz používa pre uchovávanie grafiky interný imagelist;
- SendMessage a PostMessage je implementované len pre správy LM_USER (viac tu);
- Form.Icon a Application.Icon konečne pracujú vo väčšine WidgetSetov;
- LCL teraz na Unixe používa FPC jednotku cwstrings – to umožňuje pracovať so systémom, ktorý nemá predvolené kódovanie UTF-8.
Malé zmeny LCL
- TComboBox.OnChange už nie je volané pri výbere položky v rozbaľovacom zozname;
- Pridaná udalosť TComboBox.OnGetItems, ktorá je volaná keď ComboBox potrebuje položku;
- ParentFont property je predvolene nastavená na True;
- odstránená vlastnosť TForm.TextHeight – takže sa môžete stretnúť s chybou pri otváraní starých projektov;
- pre TPicture je zavedené uloženie v inom formáte.
Zmeny IDE
- nové ikony;
- TPropertyEditorHook.GetMethodName, AddHandlerGetMethods a RemoveHandlerMethodExists teraz pracujú s ansistring;
- Formuláre teraz môžu odkazovať jeden na druhý, napríklad môžete pracovať s komponentom databáza v TDataModule (viac tu);
- IDE zvláda otváranie textových/zdrojových súborov v inom kódovaní a interne ich automaticky konvertuje do UTF-8;
- pridaný IDE nástroj pre konverziu UTF: Nástroje -> Konvertovať kódovanie projektu/balíčka (Tools / Convert encoding of project/package);
- voľba prekladača Tests teraz kontroluje viac bežných chýb nastavenia;
- zastaralé voľby prekladača -Sp -S2 -St -So boli nahradené rozbaľovacím zoznamom pre prepínač -M;
- zavedené dokončovanie identifikátorov (Ctrl+Medzerník);
- predvolene zapnuté zobrazovanie čísiel riadkov.
Komponenty
- TSynPasSyn.NestedComments je nastavený automaticky pomocou CompilerMode, výrazňovanie syntaxe teraz automaticky číta direktívu $mode a prepína vlastnosti CompilerMode a NestedComments automaticky;
- Sqldb zobrazuje editor reťazcov pre vlastnosti SQL, ak databázové pripojenie nepodporuje extrakciu metadát;
- tachart má published TChart.Anchors.
Inštalácia
- Inštalátor vo Windows nepridával adiace informácie do jednotiek fpc;
- zdrojový adresár FPC teraz môže používať makrá IDE, ako FPCVer, takže prekladač automaticky prepína zdrojový adresár.
Rôzne
- lazbuild: teraz možno vybudovať IDE s parametrami pomocou --build-ide=, napríklad ./lazbuild --build-ide=-gh;
- obrázky: pridaný obrázok Powered by Lazarus – images/powered_by.png, images/powered-by.svg;
- lazreport: veľa opráv a malé vylepšenia

