Hoewel het alweer een paar maanden geleden is dat we RAD Studio 13, C++Builder 13 en Delphi 13 hebben gelanceerd, hebben we bij Embarcadero nog niet echt geblogd over de nieuwe functies in de runtime-bibliotheken. Daarom schrijf ik een aantal blogposts over verschillende onderwerpen, te beginnen met de FireMonkey-bibliotheek.
Er zijn nu veel nieuwe functies, zowel zeer complexe (waarvan sommige al wat uitgebreider zijn behandeld) als kleinere. Mijn lijst met “13 belangrijkste functies” is een persoonlijke selectie van veranderingen die ik belangrijk vind. Het is een persoonlijke lijst, zoals de titel al aangeeft, want er zijn andere nieuwe functies die u misschien interessanter vindt dan wat ik heb geselecteerd. Merk ook op dat deze lijst zich richt op nieuwe functies, maar dat het R&D-team ook een groot aantal problemen en inconsistenties heeft aangepakt en heeft gewerkt aan platform-API's en integratie.
Inhoudsopgave
FMX 1: Nieuwe component ApplicationEvents
RAD Studio 13 introduceerde een nieuwe TApplicationEvents-component, waarmee het veel eenvoudiger is om applicatiebrede gebeurtenissen af te handelen, zonder dat u handmatig een gebeurtenishandler hoeft te maken en deze hoeft te koppelen. Plaats de component gewoon op een ontwerpoppervlak (zelfs een niet-visuele ontwerper) en voeg gebeurtenishandlers toe:

Merk op dat hoewel het concept vergelijkbaar is met de VCL-tegenhanger, de daadwerkelijke gebeurtenissen verschillend zijn en afhankelijk zijn van de levenscyclus van FMX-toepassingen. In het voorbeeld in de afbeelding hierboven behandel ik de Bij oriëntatiewijziging gebeurtenis, die over het algemeen op mobiele apparaten wordt gebruikt.
FMX 2: OnCheckedChange voor items in keuzelijsten
Er is een nieuwe OnChangeCheck-gebeurtenis voor een ListBoxItem in een ListBox-besturingselement, zoals hieronder weergegeven:

FMX 3: TComboEdit AutoAanvullen
De TComboEdit-component ondersteunt nu automatisch aanvullen tijdens het typen, vergelijkbaar met VCL TComboBox. Terwijl u typt, suggereert het besturingselement de eerste items in de lijst die overeenkomen met de huidige invoer. In dit geval bevat de keuzelijst een lijst met getallen en wordt bij het typen van “t” “twee” gesuggereerd:

FMX 4: Omgekeerde spoorbalk
De TTrackBar-besturingselement heeft een Reverse-eigenschap, waarmee de richting van de trackbar kan worden omgekeerd.

FMX 5: Muiswiel voor trackbar
Dezelfde TTrackBar-besturing ondersteunt nu ook scrollen met het muiswiel, in plaats van scrollen met het toetsenbord. Merk op dat een omgekeerde trackbar nog steeds in de verwachte richting scrolt.
FMX 6: Nieuwe uitlijningen
De TAlignLayout-opsomming bevat nieuwe uitlijningsopties voor het centreren van besturingselementen, bovenop een zeer lange lijst met bestaande uitlijningsopties. Nieuwe uitlijningsmodi zijn onder meer:
- TopCenter centreert, net als TAlignLayout.Top, het besturingselement horizontaal.
- TopLeft, net als TAlignLayout.Top, lijnt het besturingselement links uit.
- TopRight, net als TAlignLayout.Top, lijnt het besturingselement rechts uit.
- LeftCenter centreert, net als TAlignLayout.Left, het besturingselement verticaal.
- LeftTop, net als TAlignLayout.Left, lijnt het besturingselement uit aan de bovenkant.
- LeftBottom, net als TAlignLayout.Left, lijnt het besturingselement uit aan de onderkant.
- RightCenter centreert, net als TAlignLayout.Right, het besturingselement verticaal.
- RightTop, net als TAlignLayout.Right, lijnt het besturingselement uit aan de bovenkant.
- RightBottom, net als TAlignLayout.Right, lijnt het besturingselement uit aan de onderkant.
- BottomCenter centreert, net als TAlignLayout.Bottom, het besturingselement horizontaal.
- BottomLeft, net als TAlignLayout.Bottom, lijnt het besturingselement links uit.
- BottomRight, net als TAlignLayout.Bottom, lijnt het besturingselement rechts uit.
FMX 7: Tips en stijlen voor Bind Navigator
De navigatiebesturing die in Live Bindings wordt gebruikt, TBindNavigator, biedt de mogelijkheid om voor elke knop van de navigatie een specifieke hint en stijl te configureren met behulp van de sub-eigenschappen van de eigenschap ButtonsOptions.

FMX 8: Verbeteringen aan de scrollbox
Het TPresentedScrollBox-besturingselement heeft een nieuwe reeks eigenschappen waarmee de gebruiker de scrollanimatie, de stuiteringen en de aanraakinteractie kan regelen:
- De eigenschap AutoHide bepaalt of schuifbalken automatisch worden verborgen wanneer het scrollen is voltooid.
- De eigenschap Bounces geeft aan of het mogelijk is om verder dan de randen te scrollen.
- De eigenschap ScrollAnimation schakelt de scrollanimatie in of uit.
- De eigenschap ScrollDirections definieert de beschikbare scrollrichtingen.
- De eigenschap TouchTracking geeft aan of het besturingselement reageert op aanraakgebeurtenissen.
Er is ook een nieuwe IsVisibleChild-methode, die het team heeft gebruikt om de weergave van TScrollBox en TPresentedScrollBox te optimaliseren.
FMX 9: Memo-tekstprompt
RAD Studio 13 voegt een TextPrompt-eigenschap toe aan het TMemo-besturingselement in FireMonkey. Deze wordt gebruikt voor plaatshoudertekst wanneer de tekst van het besturingselement leeg is. Werkt net als de TEdit-tegenhanger. Hieronder ziet u een voorbeeld:

FMX 10: De nieuwe Display Link-service
Dit is een fundamentele verandering in FireMonkey, die een eigen gedetailleerde blogpost verdient.
De nieuwe Display Link Service is nu de centrale motor voor alle applicatie-animaties en vervangt volledig de oude, op een timer gebaseerde motor die voorheen werd gebruikt. Dit frame-nauwkeurige systeem maakt gebruik van de werkelijke verversingssnelheid van het scherm om alle UI-updates en animaties te synchroniseren en aan te sturen. Door gebruik te maken van platform-native API's zoals JChoreographer (Android) en DisplayLink (iOS), zorgt de service ervoor dat de animatieverwerking nauw aansluit bij VSync-events, wat resulteert in vloeiendere en consistentere beelden op alle platforms, met name op moderne mobiele apparaten met een hoge verversingssnelheid.
Deze verbeterde stabiliteit en vloeiendheid van animaties is duidelijk merkbaar: door de renderer stabieler te maken, worden animaties vloeiender. Dit is een belangrijke verandering en verbetering, waardoor FMX-animatie nu op hetzelfde niveau staat als andere mobiele oplossingen en in sommige gevallen zelfs sneller is. Deze verbetering is zichtbaar op alle doelplatforms en GPU-stuurprogramma's die FireMonkey kan gebruiken.
FMX 11: Flexibele hoogte van menu-items
De hoogte van menu-items (TMenuItem) was vroeger een constante waarde. Vanaf RAD Studio 13 kan de gebruiker een TStyleTag-object met StyleName=“height“ toevoegen aan de TMenuItem-stijl en de hoogte van het menu-item specificeren in de eigenschap Value.
FMX 12: Nog meer emoji's
We hebben ondersteuning toegevoegd voor de 16.0-versie van Emoji-symbolen.
FMX 13: Een nieuwe maskerbewerkingsfunctie
Er is een gloednieuwe MaskEdit-besturingselement voor FireMonkey, dat op dezelfde manier werkt als de VCL-tegenhanger. Het bevat een specifieke ontwerper voor invoermaskers, om te helpen bij het definiëren van de invoerregels. U kunt deze eigenschappeneditor tijdens het ontwerpen zien in de onderstaande afbeelding:

Er is slechts één belangrijk verschil met de VCL-versie van het besturingselement, namelijk de manier waarop TMaskEdit in FMX omgaat met onjuiste invoer. In de FireMonkey-implementatie genereert het besturingselement een OnValidateError-gebeurtenis in plaats van een uitzondering te genereren als de huidige waarde in MaskEdit ongeldig is. Het wordt aanbevolen om deze gebeurtenis af te handelen om de gebruiker visuele feedback te geven over ongeldige waarden. U kunt bijvoorbeeld het veld markeren met een rode omtrek, een bijbehorend label toevoegen over een onjuiste waarde of zelfs een uitzondering genereren, zoals in de VCL-besturingselement. Als de waarde nog steeds onjuist is nadat de focus is gereset, blijft het besturingselement in een ongeldige status en wordt de OnChange-gebeurtenis niet geactiveerd totdat de waarde geldig wordt.
FireMonkey blijft verbeteren
Zoals u in deze blogpost kunt zien, blijft FireMonkey zich verbeteren op het gebied van functies (en kwaliteit, iets wat ik hier niet heb benadrukt) en terwijl we VCL-achtige besturingselementen en componenten toevoegen, proberen we dit te doen op een manier die meer flexibiliteit biedt en ook goed werkt op mobiele apparaten. Sommige functies, zoals de verbeterde animatieondersteuning, zijn in de eerste plaats bedoeld voor mobiele apparaten. Het doel blijft om een framework voor meerdere apparaten te bieden en de mogelijkheid om één broncode te hebben voor zowel desktop als mobiel, maar tegelijkertijd alles te bieden wat u nodig hebt voor het bouwen van applicaties die alleen voor mobiel of alleen voor desktop zijn bedoeld.
Blijf op de hoogte voor meer blogberichten met lijsten van functies in andere RAD Studio-bibliotheken.
