SlideShare a Scribd company logo
1 of 83
Download to read offline
Quoi de neuf dans
la version 11 Alexandria ?
Patrick Prémartin
• MVP Embarcadero
• Formateur Delphi, auteur, blogueur
• Blog : https://developpeur-pascal.fr
• Cours Delphi : https://apprendre-delphi.fr
• VOD (conférences, webinaires, cours, live coding, game coding) :
https://serialstreameur.fr
• Infos et contacts : https://www.linkedin.com/in/patrickpremartin/
Au menu
• Rappels sur les licences
• Systèmes d’exploitations pris en charge
• Les évolutions de l’installeur
• Les évolutions de l’IDE
• Les évolutions de la RTL, de la PPL, de FireDAC, de la VCL, de
FireMonkey, des librairies Bluetooth et web, de DataSnap et de RAD
Server
• Les évolutions de Delphi et de C++Builder
Rappel sur les licences
Rappel sur les licences
• RAD Studio, Delphi et C++Builder sont disponibles selon plusieurs
niveaux de licences, valides sur une base annuelle ou à vie selon les
cas.
• Pour vos questions et commandes, passez par Barnsten pour la
France, la Suisse et le BENELUX : https://barnsten.com
• En dehors de ces pays, vous pouvez contacter l’équipe de ventes
d’Embarcadero qui vous redirigera vers son partenaire local :
https://embarcadero.com
Rappel sur les licences
• Actuellement en version 11 Alexandria :
• Academic : pour les étudiants, enseignants et établissements d’enseignement
• Professional, Enterprise, Architect : pour les professionnels et entreprises
• Actuellement en version 10.4.2 Sydney :
• Community Edition : pour les particuliers (usage essentiellement non
commercial)
Systèmes d’exploitation pris en charge
Systèmes d’exploitation pris en charge
• La version 11 Alexandria de RAD Studio, Delphi et C++Builder propose
un environnement de développement et des compilateurs.
• Même si ces outils fonctionnent sur des versions antérieures il est
recommandé d’utiliser Windows 10 ou Windows 11 pour développer.
• Les compilateurs fournis (selon le langage et votre licence)
permettent de cibler Windows (x86 et x86_64), macOS (x86_64 et
ARM64), Linux (x86_64), iOS (ARM64), Android (ARM32 et ARM64).
• Plus d’infos sur les plateformes prises en charge sur
https://docwiki.embarcadero.com/PlatformStatus/en/
Les évolutions de l’installeur
Les évolutions de l’installeur
• Le choix de la langue fait son grand retour en premier écran de
l’installeur (version web comme offline).
• Il est maintenant possible de changer le dossier de stockage des
fichiers téléchargés lors de l’installation (qui avait tendance à grossir
dans les documents publics).
• La résolution d’écran est prise en charge par les écrans d’installation.
• Certaines opérations sont faites en parallèle pour accélérer le temps
d’installation. Pour le moment essentiellement les téléchargements.
Les évolutions de l’IDE
Les évolutions de l’IDE
• Les paquets sont maintenant tous chargés au démarrage de
l’environnement de développement. Ca permet d’éliminer quelques
problèmes de compatibilité et de plantages qui se posaient parfois
selon ce qu’on avait installé.
• L’écran des options de l’environnement a été modifié afin d’accélérer
notablement son temps de chargement et c’est efficace !
Attention : ça peut avoir un impact pour les extensions de l’IDE y
greffant leurs options de configuration.
Les évolutions de l’IDE
• Nouvel écran d’accueil personnalisable dans sa forme et les pavés
qu’il affiche.
• Dans le futur il devrait être possible d’ajouter de nouveaux panels
sous forme d’extensions de l’IDE via OTAPI.
• Lors d’une compilation l’environnement prévient si des commandes
paramétrées dans les options du projet seront exécutées.
C’est un pas intéressant pour plus de protection dans un monde où
on passe notre temps à tester des choses téléchargées un peu
n’importe où.
Les évolutions de l’IDE
• Prise en charge complète du High DPI dans l’IDE (PerMonitorV2 et
styles).
• Passage aux TVirtualImageList, TImageList et TImageCollection avec
redesign de toutes les icones présentes dans l’environnement.
• Modifications au niveau de l’Open Tools API (OTAPI) pour les images
ce qui impacte tous les assistants de l’IDE et extensions qui en
affichaient.
Les évolutions de l’IDE
• Une nouvelle fonte par défaut fait son apparition pour l’éditeur de
codes : consolas, qui passe mieux sur des écrans à haute densité de
pixels. D’autres fontes « dédiées au développement » sont également
proposées.
Les évolutions de l’IDE
• Le mode flottant de l’IDE a été retiré depuis plusieurs versions.
• Les panels de l’environnement sont tous détachables et
positionnables sur un ou plusieurs écrans. Le bureau peut être
sauvegardé et restauré à l’identique depuis les options de l’IDE.
• Depuis la 10.4 il est possible d’avoir plusieurs fenêtres d’édition du
code de la même unité (synchronisées entre elles en temps réel).
• La version 11 Alexandria ajoute le muti concepteur de fiches. Déplacé
sur un autre écran, sa résolution s’adapte à celle de l’écran.
Les évolutions de l’IDE
• Les fenêtres d’affichage d’exceptions ont maintenant un bouton
« copier » pour simplifier les remontées d’erreurs.
Cette modification est également valable dans les projets VCL.
Les évolutions de la RTL
Les évolutions de la RTL
• Mise à niveau et correctifs sur la librairie ZIP et la classe TZipFile.
ZIP64 est maintenant pris en charge comme la suppression de fichiers
dans une archive.
• Amélioration de la prise en charge de grosses structures de données
et du fonctionnement en 64 bits pour les listes, les dictionnaires et les
flux.
• Nouvelles optimisations et améliorations de performance dans la RTL
et notamment la gestion des tableaux dynamiques.
Les évolutions de la RTL
• Ajout de helpers sur TDateTime avec ajout de nouvelles fonctions de
conversions ou récupération de dates/heures comme la fonction
UTCNow.
• StrToDate() a été encore améliorée pour prendre en compte des
formats non traités jusque là.
• Ajout de helpers sur TCurrency
• Ajout d’une classe TNoRefCountObject
• Ajout d’une classe TPointerStream pour les développeurs désireux
d’accéder directement à la mémoire sous forme de flux, mais danger !
Les évolutions de la RTL
• Possibilité de créer une liste ou un dictionnaire directement à partir
d’un tableau.
• Modifications sur RTTI pour l’appel de méthodes sur des tableaux
ouverts.
• On peut créer une nouvelle instance d’interface par la fonction
System.Generics.Defaults._MakeInterfaceInstance qui permet
d’associer des méthodes anonymes aux différentes méthodes
d’interface.
Les évolutions de la RTL
• Les développeurs de composants et extensions de l’IDE doivent faire
attention à la normalisation des identifiants de plateformes à utiliser
dans les directives de compilation et les attributs.
• pidOSXArm64 a été ajouté pour la plateforme macOS ARM64
Les évolutions de la RTL
• Support de chemins d’accès aux fichiers de plus de 260 caractères sur
les OS qui le gèrent.
• Les exceptions EInOutError et EInOutArgumentException permettent
de savoir de quel fichier il s’agit avec la nouvelle propriété Path.
• UTF8ToString a été modifiée.
Certaines versions sont dépréciées. Vérifiez vos projets si vous
l’utilisez.
Passez par UTF8ArrayToString() en utilisation de tableaux dynamiques
si vous utilisiez la version dépréciée.
Les évolutions de la RTL
• ParseJSONValue est désormais disponible sur tous les types
descendants de TJSONValue. Plus besoin de passer par TJSONObject
pour récupérer autre chose, mais le transtypage final reste
d’actualité.
• TJSONObject.AddPair a une version avec un entier qui évitera de
bidouiller en créant un TJSONNumber lors de l’appel.
Les évolutions de la PPL et des threads
Les évolutions de la PPL et des threads
• Possibilité de récupérer les statistiques d’un pool de processus.
(TThreadPoolStats.Get)
• TThread.GetTickCount64 fait son apparition pour les projets 64 bits et
peut remplacer Thread.GetTickCount (retournant une valeur 32 bits)
• Ajout de l’événement onSynchronize (en méthode de classe) sur
TThread.
Les évolutions de FireDAC
Les évolutions de FireDAC
• Mise à niveau des drivers pour les moteurs de bases de données
PostgreSQL (version 13) et Oracle (version 19c).
• Ajout de la valeur soDigitsAsNumber à TFDSortOption qui fonctionne
comme TCompareOption de Systenm.SysUtils.
• Améliorations (non détaillées) au niveau de l’écran de monitoring de
FireDAC.
• Prise en charge du VendorHome du driver Firebird s’il est renseigné
(sinon ça reste le dossier ./bin par rapport à l’exécutable).
Les évolutions de la VCL
Les évolutions de la VCL
• Les DPI sont maintenant gérés par le concepteur de fiches et stockés
dans les DFM. Une option d’environnement permet de définir vos
choix pour votre poste de développement.
• Amélioration de la prise en charge du Remote Desktop dans le cadre
du développement avec l’IDE comme pour toutes les applications VCL
recompilées à partir de cette version.
Les évolutions de la VCL
• Le concepteur de fiches peut afficher le style en cours de la fiche et
des composant. Une option d’environnement permet de l’activer pour
en bénéficier.
• Par défaut c’est le style Windows 10 qui est utilisé.
(d’où le changement de look de la barre de titre de la fiche en cours
de conception).
• « Segoe UI » remplace « Tahoma » comme fonte par défaut sur les
projets VCL. Ca peut avoir un impact sur vos interfaces utilisateurs,
vérifiez vos écrans après recompilation.
Les évolutions de la VCL
• Le composant TRichEdit prend en charge la détection d’URL, la
transparence et le correcteur orthographique grâce à la prise en
charge de la version 4.1 de l’API Windows correspondante.
• Suppression de pas mal de code historique notamment lié à Windows
XP.
• Possibilité d’avoir des cases à cocher (3 états) dans le composant
TTreeView
• De nombreuses modifications sur tout un tas de composants (ajout
de propriétés ou d’événements, prise en charge de la molette de la
souris, gestion du REDO/UNDO sur des sélections)
Les évolutions de la VCL
• Ajout du composant TDBLabeledEdit et modification de l’héritage de
TCustomLabeledEdit puis TDBEdit permettant d’utiliser un masque de
saisie sur ces composants.
• Ajout d’une marge intérieure dans le TCustomMemo (propriété
« EditMargins ».
Impact sur TMemo, TDBMemo, TRichEdit et TDBRichEdit.
Les évolutions de la VCL
• La fonte de l’entête des TGroupBox est modifiable.
Le contour peut être désactivé.
• TComboBox donne accès à la taille de la liste affichée lorsqu’on clique
sur le bouton qui l’ouvre.
Les évolutions de la VCL
• TWICImage (qui sert pour les TBitmap) gère maintenant les frames
des images multiframes (comme par exemple des TIFF).
• TCoolBar permet d’afficher automatiquement les chevrons si la place
pour afficher ses icones est insuffisante.
• Le format des valeurs monétaires et leur type d’affichage a été étendu
dans TNumberBox.
• La variable booléenne TControl.RaiseOnNonMainThreadUsage
permet de déclencher une exception si on crée un composant
Windows (descendant de TWinControl) dans un thread secondaire.
Les évolutions de la VCL
• TScrollBox prend en charge la molette de la souris. Testez vos logiciels
après recompilation car il peut y avoir un impact sur vos choix
d’interface utilisateur.
• Suppression de la propriété OldCreateOrder sur les TDataModule et
les TForm.
Ca ne devrait avoir aucun impact sur les projets existants.
Les évolutions de la VCL
• StyleUtils.inc devient StyleUtils.pas
On y trouve les valeurs globales utilisées au niveau des styles et on
peut par conséquent les modifier plus facilement qu’avec le .inc
Attention : Embarcadero se réserve le droit d’y faire des modifications
à l’avenir rompant potentiellement la compatibilité ascendante.
Les évolutions de FireMonkey
Les évolutions de FireMonkey
• Le concepteur de fiches évolue pour proposer des guides de
placement des composants et des infobulles.
• Modifications (non visibles pour les développeurs mais visibles pour
les utilisateurs) concernant la prise en charge du High DPI sous
Windows avec passage comme c’était déjà le cas pour les autres
plateformes à des pixels indépendants de l’écran au du pixel
classique.
Les évolutions de FireMonkey
• Refactorisation de certains services de plateformes permettant de
mieux séparer Mac et Windows.
• Modifications sur les services de plateformes suivants :
IFMXSaveStateService, IFMXDeviceService,
IFMXVirtualKeyboardService, IFMXTimerService, IFMXLoggingService,
IFMXMenuService, IFMXMultiDisplayService
• Modifications au niveau des unités de mesure :
FMX.Platform.Metrics.*
Les évolutions de FireMonkey
• Prise en charge de l’API 30 d’Android demandée par Google pour
diffusion sur le Play Store.
• Mise à niveau du support pour Android X, in-app purchase (Google
Play Billing v4) et le Play Store.
• Prise en charge de plusieurs classes.dex pour simplifier le support de
librairies Android externes.
• Les projets existants doivent mettre à jour la liste de leurs
dépendances aux librairies Android standard pour être recompilables
avec la version 11 Alexandria (et ne seront plus compatibles avec les
versions antérieures une fois fait).
Les évolutions de FireMonkey
• Le composant TWebBrowser de FireMonkey prend maintenant en
charge WebView2 lié à Microsoft Edge plutôt que Internet Explorer
sous Windows.
• Sous Android le TWebBrowser prend maintenant en charge l’envoi
(upload) de fichiers.
• Ajout de méthodes de conversion de position : ScreenToLocal /
LocalToScreen, ConvertLocalPointFrom / ConvertLocalPointTo
• Le pack d’accessibilité FMX est maintenant préinstallé, plus besoin de
le faire à part si on l’utilise.
Les évolutions de FireMonkey
• Des modifications et améliorations sur la prise en charge du Z-Order
entre des composants système, de plateforme et stylés sur toutes les
plateformes.
Les évolutions de FireMonkey
• Suppression de l’assistant de création de projets « Application
FireMonkey Metropolis UI ».
La version VCL est toujours présente, mais pour combien de temps ?
Si vous créez des projets Metropolis UI manifestez vous.
Les évolutions du Bluetooth
Les évolutions du Bluetooth
• Nombreux correctifs sur la prise en charge du Bluetooth et du
Bluetooth LE.
• Amélioration du support des beacons.
• Mise à niveau des API correspondantes sur toutes les plateformes.
Les évolutions des librairies web
Les évolutions des librairies web
• Prise en charge de http/2 sous Windows.
• Ajout de la propriété ProtocolVersion à la classe THTTPClient et ses
dépendances.
• Possibilité de gérer les clés publiques d’un certificat via
TCertificate.PublicKey dans System.Net.URLClient
• Ajout d’un encodage en base64 sur les URL avec
TNetEncoding.Base64URL et TBase64URLEncoding.
Les évolutions des librairies web
• Ajout du composant TRESTRequestDataSetAdapter pour transférer
automatiquement des ensembles de données lors d’une requête.
• Ajout de time out (ConnectTimeOut, ReadTimeOut) sur les
composants TEMSProvider, TKinveyProvider et TParseProvider
• Remplacement de gethostbyname() par getaddrinfo() dans toute la
RTL.
• TLS 1.3 est pris en charge sur Windows pour le composant
TNetHTTPClient et la classe THTTPClient.
Les évolutions des librairies web
• Modifications au niveau de TSocket (dont dépendent tous les
composants réseau)
Les évolutions des librairies web
• ContentType est devenu une chaine, cela permet d’y mettre ce qu’on
veut librement dans les composants (TNetHTTPClient, TRESTClient) et
librairies sous-jacentes.
Impact possible sur les projets existants. Testez après compilation.
Les évolutions de WebBroker
Les évolutions de WebBroker
• Possibilité de récupérer la taille de la pile en mode DLL ISAPI
• Amélioration du support du transfert de gros fichiers (plus de 2Gb) en
download (lié aux améliorations sur les flux).
Les évolutions de DataSnap
Les évolutions de DataSnap
• Possibilité de spécifier une URI personnalisée associée à une méthode
pour la traiter grâce à la classe TDSMethodMapEvent
• TDSConnection bénéficie de la nouvelle propriété
ConnectionTimeOut
Les évolutions de RAD Server
Les évolutions dans RAD Server
• Support du passage de paramètres POST en multipart/form-data
(passage de données avec d’éventuels fichiers).
• Prise en charge de paramètres transférés par le nouveau composant
TRESTRequestDataSetAdapter ou en utilisant
TRESTResponseDataSetAdapter.
Les évolutions dans RAD Server
• RAD Server est désormais disponible en version lite.
• Cette version embarque IBToGo au lieu d’Interbase pour sa gestion
interne.
• Des outils de déploiement de RAD Server sont disponibles sur GetIT.
L’avantage de la version lite c’est qu’il n’y a que le serveur à déployer
ce qui simplifie les choses.
• La licence de déploiement est plus permissive et permet un
déploiement illimité.
Les évolutions de Delphi
Les évolutions de Delphi
• Ajout de la plateforme ARM 64 bits (Apple Silicon) pour Mac.
• Possibilité de générer des binaires universels pour macOS
(embarquant du x86_64 et ARM64 dans le même fichier).
• Dépréciation de Macapi.QTKit (non dispo sur ARM64)
• Suppression de Macapi.Quicktime
Les évolutions de Delphi
• Les versions Enterprise et Architect (permettant de cibler Linux)
prennent en charge WSL 2 (Windows Subsystem for Linux) comme les
distributions Linux majeures.
• Mise à niveau de FMX Linux.
Les évolutions de Delphi
• Rupture de compatibilité avec les anciennes versions pour ces
nouveautés :
• Possibilité d’utiliser le underscore dans des valeurs numériques pour
visualiser un format ou une grandeur. Ils sont ignorés à la compilation.
• Possibilité de saisir des valeurs en format binaire avec le symbole « % »
devant.
• Prise en charge des instructions assembleur AVX-512 dans l’assembleur en
ligne.
• A n’utiliser que si vous ne travaillez plus dans des versions antérieures
de Delphi.
Les évolutions de Delphi
• De nombreux retours sur le serveur LSP (Langage Server Protocol
utilisé pour « code insight ») ont été traités. Des améliorations ont été
mises en place.
• Les fichiers inclus (généralement d’extension .inc) sont maintenant
pris en charge.
• L’ancien mode d’assistance a été complètement retiré.
Les évolutions de Delphi
• LSP suit un protocole standard. Il est possible de l’interfacer avec des
éditeurs de codes externes pour avoir « code insight » dedans.
• Embarcadero propose son serveur LSP sous forme d’extension pour
VSCode depuis la Visual Studio Marketplace. Opérationnel
uniquement sous Windows et sur le poste de développement sur
lequel Delphi (ou RAD Studio) est installé.
Les évolutions de C++Builder
Les évolutions de C++Builder
• Un nouveau formateur de code a été mis en place. Il se base sur
clang-format et permet de gérer ses configurations habituelles.
• Il est possible d’activer un formatage en cours de frappe ou à
l’enregistrement des fichiers sources.
Les évolutions de C++Builder
• Focus sur l’interopérabilité entre Delphi et C++Builder du côté RTTI et
langage C++.
• Mise à disposition de Clang d’accès RTTI aux types Delphi.
• La fonction typeid() a été étendue aux types Delphi.
• Les classes Delphi bénéficient maintenant de make_shared<> et
make_unique.
• On peut utiliser des smart pointer sur des types Delphi.
Les évolutions de C++Builder
• Travail sur la compatibilité des chaînes et la simplification de passage
d’un format à l’autre.
• str::string_view pour les chaines Delphi.
• Simplification au niveau des affectations.
• Ajout des méthodes to_string() et from_string() sur les devises, dates,
entiers, décimaux et variants.
• Le compilateur émet un warning pour les interfaces ne dérivant pas
de IUnknown.
Les évolutions de C++Builder
• Poursuite du travail sur la refonte de l’interception des exceptions
démarré en 10.4.2 afin de traiter des cas tordus qui ne passaient pas
les tests jusque là.
• Amélioration de la compatibilité avec CMake.
Conclusion
Conclusion
• En apparence rien de révolutionnaire dans cette version 11
Alexandria mais tout de même plus de 800 tickets clients (anomalies,
demandes et suggestions) pris en compte.
• Le travail sur le High DPI est arrivé à son terme et nous permet de
passer à la vitesse supérieure dans nos migrations et adaptations de
projets VCL existants.
Conclusion
• La prise en charge de Windows 11, Android API 30, macOS et iOS
dans leur dernière version, devraient permettre de travailler
sereinement sur l’année qui vient et migrer les logiciels en douceur
vers la nouvelle génération d’appareils chez nos utilisateurs.
• La version 11 Alexandria ce sont aussi de nombreuses évolutions
sous-jacentes, pas forcément visibles (ni listées ici) mais que vous
sentirez au quotidien et dont vos utilisateurs bénéficieront par une
simple recompilation de vos projets.
Conclusion
• Pas encore le droit d’en dévoiler plus mais d’autres fonctionnalités de
grand intérêt sont aussi présentes dans cette nouvelle version au
niveau de l’IDE.
Elles devraient être dévoilées par Embarcadero d’ici quelques
semaines.
What next ?
What next ?
• Prochaine présentation le jeudi 30 septembre 2021 à 14 heures :
« Coder sans coder : Delphi en mode nocode c'est possible ! »
https://www.twitch.tv/patrickpremartin
• Je vous montrerai comment développer des logiciels et applications
mobiles avec Delphi sans faire une seule ligne de code. Idéal pour
faire du prototypage de logiciels, des démos ou même des
programmes complets.
What next ?
• Prochaine présentation le jeudi 30 septembre 2021 à 14 heures :
« Coder sans coder : Delphi en mode nocode c'est possible ! »
https://www.twitch.tv/patrickpremartin
• Infos sur https://developpeur-pascal.fr/p/___00n-coder-sans-coder-
delphi-en-mode-nocode-c-est-possible-webinaire-le-30-septembre-a-
14-heures.html
What next ?
• La rediffusion de cette présentation sera visible sur la chaîne YouTube
de Barnsten dans quelques jours.
https://www.youtube.com/c/BarnstenFrance
• Elle sera également mise en ligne dans la rubrique « conférences » du
site Serial Streameur accompagnée de ce PDF.
https://serialstreameur.fr/conferences.php
Ressources en ligne
Ressources en ligne
• Les nouveautés de la version 11 Alexandria
https://docwiki.embarcadero.com/RADStudio/Alexandria/en/What%
27s_New
• Les notes de version
https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Release
_Notes
• Liste des tickets publics pris en charge
https://docwiki.embarcadero.com/RADStudio/Alexandria/en/New_fe
atures_and_customer_reported_issues_fixed_in_RAD_Studio_11.0
Ressources en ligne
• Documentation de RAD Studio 11 Alexandria :
https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Main_P
age
• Livres sur Delphi et le Pascal :
https://delphi-books.com/en/
• Forum d’entraide francophone :
https://www.developpez.net/forums/f15/environnements-
developpement/delphi/
Ressources en ligne
• Serial Streameur (VOD) :
https://serialstreameur.fr
• Apprendre Delphi (cours sur Delphi) :
https://apprendre-delphi.fr
• Développeur Pascal (blog):
https://developpeur-pascal.fr
Contacts
Contacts
• Patrick Prémartin pour formations ou coups de pouces ponctuels :
patrick.premartin@olfsoft.com
ou de préférence
https://developpeur-pascal.fr/contact/
• Barnsten pour vos questions techniques, achats et renouvellements
de licences :
equipe@barnsten.com
ou depuis le tchat sur le site
https://www.barnsten.com/fr/

More Related Content

Similar to Quoi de neuf dans la version 11 Alexandria ?

Adama Coulibaly.pptx
Adama Coulibaly.pptxAdama Coulibaly.pptx
Adama Coulibaly.pptxIdrissaDembl
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Microsoft
 
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...pprem
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Cellenza
 
Découvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCLDécouvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCLpprem
 
Comment développer pour Linux avec Delphi
Comment développer pour Linux avec DelphiComment développer pour Linux avec Delphi
Comment développer pour Linux avec Delphipprem
 
Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Julien Dubois
 
Découvrez FireDAC pour FMX
Découvrez FireDAC pour FMXDécouvrez FireDAC pour FMX
Découvrez FireDAC pour FMXpprem
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
Compatibilité Internet Explorer : pour le meilleur et pour le pire!
Compatibilité Internet Explorer : pour le meilleur et pour le pire!Compatibilité Internet Explorer : pour le meilleur et pour le pire!
Compatibilité Internet Explorer : pour le meilleur et pour le pire!Microsoft
 
#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQubeVincent Biret
 
cours-syst (1).pdf
cours-syst (1).pdfcours-syst (1).pdf
cours-syst (1).pdfolfaharrabi2
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPriscilleGANKIA
 
2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédible2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédiblePatrick Guimonet
 
Déploiement et débogage à distance
Déploiement et débogage à distanceDéploiement et débogage à distance
Déploiement et débogage à distancepprem
 
alphorm.com - Formation Windows Server Core 2008 (R2)
alphorm.com - Formation Windows Server Core 2008 (R2)alphorm.com - Formation Windows Server Core 2008 (R2)
alphorm.com - Formation Windows Server Core 2008 (R2)Alphorm
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteMicrosoft
 
TELESTREAM Vantage - VIDELIO Cap'Ciné
TELESTREAM Vantage - VIDELIO Cap'CinéTELESTREAM Vantage - VIDELIO Cap'Ciné
TELESTREAM Vantage - VIDELIO Cap'CinéBenoît Godard
 

Similar to Quoi de neuf dans la version 11 Alexandria ? (20)

Adama Coulibaly.pptx
Adama Coulibaly.pptxAdama Coulibaly.pptx
Adama Coulibaly.pptx
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSP
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1
 
Octo Maven.pdf
Octo Maven.pdfOcto Maven.pdf
Octo Maven.pdf
 
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1
 
Découvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCLDécouvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCL
 
Comment développer pour Linux avec Delphi
Comment développer pour Linux avec DelphiComment développer pour Linux avec Delphi
Comment développer pour Linux avec Delphi
 
Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017
 
Découvrez FireDAC pour FMX
Découvrez FireDAC pour FMXDécouvrez FireDAC pour FMX
Découvrez FireDAC pour FMX
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Compatibilité Internet Explorer : pour le meilleur et pour le pire!
Compatibilité Internet Explorer : pour le meilleur et pour le pire!Compatibilité Internet Explorer : pour le meilleur et pour le pire!
Compatibilité Internet Explorer : pour le meilleur et pour le pire!
 
#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube
 
cours-syst (1).pdf
cours-syst (1).pdfcours-syst (1).pdf
cours-syst (1).pdf
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptx
 
2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédible2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédible
 
Déploiement et débogage à distance
Déploiement et débogage à distanceDéploiement et débogage à distance
Déploiement et débogage à distance
 
alphorm.com - Formation Windows Server Core 2008 (R2)
alphorm.com - Formation Windows Server Core 2008 (R2)alphorm.com - Formation Windows Server Core 2008 (R2)
alphorm.com - Formation Windows Server Core 2008 (R2)
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
 
TELESTREAM Vantage - VIDELIO Cap'Ciné
TELESTREAM Vantage - VIDELIO Cap'CinéTELESTREAM Vantage - VIDELIO Cap'Ciné
TELESTREAM Vantage - VIDELIO Cap'Ciné
 

More from pprem

Using FireMonkey as a game engine
Using FireMonkey as a game engineUsing FireMonkey as a game engine
Using FireMonkey as a game enginepprem
 
Using Delphi as a no code development environment
Using Delphi as a no code development environmentUsing Delphi as a no code development environment
Using Delphi as a no code development environmentpprem
 
Easy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkeyEasy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkeypprem
 
Utiliser FireMonkey comme moteur de jeux vidéo
Utiliser FireMonkey comme moteur de jeux vidéoUtiliser FireMonkey comme moteur de jeux vidéo
Utiliser FireMonkey comme moteur de jeux vidéopprem
 
Coder sans coder : Delphi en mode no code !
Coder sans coder : Delphi en mode no code !Coder sans coder : Delphi en mode no code !
Coder sans coder : Delphi en mode no code !pprem
 
Faire des applications web avec Delphi
Faire des applications web avec DelphiFaire des applications web avec Delphi
Faire des applications web avec Delphipprem
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphipprem
 
Diffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jourDiffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jourpprem
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitairespprem
 
Développer une application pour Android TV avec Delphi
Développer une application pour Android TV avec DelphiDévelopper une application pour Android TV avec Delphi
Développer une application pour Android TV avec Delphipprem
 
Sauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilesSauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilespprem
 
Gérer le clavier virtuel sous iOS et Android
Gérer le clavier virtuel sous iOS et AndroidGérer le clavier virtuel sous iOS et Android
Gérer le clavier virtuel sous iOS et Androidpprem
 
Internationaliser les projets VCL / FMX
Internationaliser les projets VCL / FMXInternationaliser les projets VCL / FMX
Internationaliser les projets VCL / FMXpprem
 
Utiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'imagesUtiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'imagespprem
 
Utiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformeUtiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformepprem
 
Faire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCLFaire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCLpprem
 
Faire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkeyFaire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkeypprem
 
QR codes et codes à barres sous Delphi
QR codes et codes à barres sous DelphiQR codes et codes à barres sous Delphi
QR codes et codes à barres sous Delphipprem
 
Créer des composants visuels sans faire de composant
Créer des composants visuels sans faire de composantCréer des composants visuels sans faire de composant
Créer des composants visuels sans faire de composantpprem
 
Des solutions de synchronisation de données
Des solutions de synchronisation de donnéesDes solutions de synchronisation de données
Des solutions de synchronisation de donnéespprem
 

More from pprem (20)

Using FireMonkey as a game engine
Using FireMonkey as a game engineUsing FireMonkey as a game engine
Using FireMonkey as a game engine
 
Using Delphi as a no code development environment
Using Delphi as a no code development environmentUsing Delphi as a no code development environment
Using Delphi as a no code development environment
 
Easy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkeyEasy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkey
 
Utiliser FireMonkey comme moteur de jeux vidéo
Utiliser FireMonkey comme moteur de jeux vidéoUtiliser FireMonkey comme moteur de jeux vidéo
Utiliser FireMonkey comme moteur de jeux vidéo
 
Coder sans coder : Delphi en mode no code !
Coder sans coder : Delphi en mode no code !Coder sans coder : Delphi en mode no code !
Coder sans coder : Delphi en mode no code !
 
Faire des applications web avec Delphi
Faire des applications web avec DelphiFaire des applications web avec Delphi
Faire des applications web avec Delphi
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphi
 
Diffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jourDiffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jour
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitaires
 
Développer une application pour Android TV avec Delphi
Développer une application pour Android TV avec DelphiDévelopper une application pour Android TV avec Delphi
Développer une application pour Android TV avec Delphi
 
Sauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilesSauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobiles
 
Gérer le clavier virtuel sous iOS et Android
Gérer le clavier virtuel sous iOS et AndroidGérer le clavier virtuel sous iOS et Android
Gérer le clavier virtuel sous iOS et Android
 
Internationaliser les projets VCL / FMX
Internationaliser les projets VCL / FMXInternationaliser les projets VCL / FMX
Internationaliser les projets VCL / FMX
 
Utiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'imagesUtiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'images
 
Utiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformeUtiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateforme
 
Faire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCLFaire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCL
 
Faire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkeyFaire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkey
 
QR codes et codes à barres sous Delphi
QR codes et codes à barres sous DelphiQR codes et codes à barres sous Delphi
QR codes et codes à barres sous Delphi
 
Créer des composants visuels sans faire de composant
Créer des composants visuels sans faire de composantCréer des composants visuels sans faire de composant
Créer des composants visuels sans faire de composant
 
Des solutions de synchronisation de données
Des solutions de synchronisation de donnéesDes solutions de synchronisation de données
Des solutions de synchronisation de données
 

Quoi de neuf dans la version 11 Alexandria ?

  • 1. Quoi de neuf dans la version 11 Alexandria ?
  • 2. Patrick Prémartin • MVP Embarcadero • Formateur Delphi, auteur, blogueur • Blog : https://developpeur-pascal.fr • Cours Delphi : https://apprendre-delphi.fr • VOD (conférences, webinaires, cours, live coding, game coding) : https://serialstreameur.fr • Infos et contacts : https://www.linkedin.com/in/patrickpremartin/
  • 3. Au menu • Rappels sur les licences • Systèmes d’exploitations pris en charge • Les évolutions de l’installeur • Les évolutions de l’IDE • Les évolutions de la RTL, de la PPL, de FireDAC, de la VCL, de FireMonkey, des librairies Bluetooth et web, de DataSnap et de RAD Server • Les évolutions de Delphi et de C++Builder
  • 4. Rappel sur les licences
  • 5. Rappel sur les licences • RAD Studio, Delphi et C++Builder sont disponibles selon plusieurs niveaux de licences, valides sur une base annuelle ou à vie selon les cas. • Pour vos questions et commandes, passez par Barnsten pour la France, la Suisse et le BENELUX : https://barnsten.com • En dehors de ces pays, vous pouvez contacter l’équipe de ventes d’Embarcadero qui vous redirigera vers son partenaire local : https://embarcadero.com
  • 6. Rappel sur les licences • Actuellement en version 11 Alexandria : • Academic : pour les étudiants, enseignants et établissements d’enseignement • Professional, Enterprise, Architect : pour les professionnels et entreprises • Actuellement en version 10.4.2 Sydney : • Community Edition : pour les particuliers (usage essentiellement non commercial)
  • 8. Systèmes d’exploitation pris en charge • La version 11 Alexandria de RAD Studio, Delphi et C++Builder propose un environnement de développement et des compilateurs. • Même si ces outils fonctionnent sur des versions antérieures il est recommandé d’utiliser Windows 10 ou Windows 11 pour développer. • Les compilateurs fournis (selon le langage et votre licence) permettent de cibler Windows (x86 et x86_64), macOS (x86_64 et ARM64), Linux (x86_64), iOS (ARM64), Android (ARM32 et ARM64). • Plus d’infos sur les plateformes prises en charge sur https://docwiki.embarcadero.com/PlatformStatus/en/
  • 9. Les évolutions de l’installeur
  • 10. Les évolutions de l’installeur • Le choix de la langue fait son grand retour en premier écran de l’installeur (version web comme offline). • Il est maintenant possible de changer le dossier de stockage des fichiers téléchargés lors de l’installation (qui avait tendance à grossir dans les documents publics). • La résolution d’écran est prise en charge par les écrans d’installation. • Certaines opérations sont faites en parallèle pour accélérer le temps d’installation. Pour le moment essentiellement les téléchargements.
  • 12. Les évolutions de l’IDE • Les paquets sont maintenant tous chargés au démarrage de l’environnement de développement. Ca permet d’éliminer quelques problèmes de compatibilité et de plantages qui se posaient parfois selon ce qu’on avait installé. • L’écran des options de l’environnement a été modifié afin d’accélérer notablement son temps de chargement et c’est efficace ! Attention : ça peut avoir un impact pour les extensions de l’IDE y greffant leurs options de configuration.
  • 13. Les évolutions de l’IDE • Nouvel écran d’accueil personnalisable dans sa forme et les pavés qu’il affiche. • Dans le futur il devrait être possible d’ajouter de nouveaux panels sous forme d’extensions de l’IDE via OTAPI. • Lors d’une compilation l’environnement prévient si des commandes paramétrées dans les options du projet seront exécutées. C’est un pas intéressant pour plus de protection dans un monde où on passe notre temps à tester des choses téléchargées un peu n’importe où.
  • 14. Les évolutions de l’IDE • Prise en charge complète du High DPI dans l’IDE (PerMonitorV2 et styles). • Passage aux TVirtualImageList, TImageList et TImageCollection avec redesign de toutes les icones présentes dans l’environnement. • Modifications au niveau de l’Open Tools API (OTAPI) pour les images ce qui impacte tous les assistants de l’IDE et extensions qui en affichaient.
  • 15. Les évolutions de l’IDE • Une nouvelle fonte par défaut fait son apparition pour l’éditeur de codes : consolas, qui passe mieux sur des écrans à haute densité de pixels. D’autres fontes « dédiées au développement » sont également proposées.
  • 16. Les évolutions de l’IDE • Le mode flottant de l’IDE a été retiré depuis plusieurs versions. • Les panels de l’environnement sont tous détachables et positionnables sur un ou plusieurs écrans. Le bureau peut être sauvegardé et restauré à l’identique depuis les options de l’IDE. • Depuis la 10.4 il est possible d’avoir plusieurs fenêtres d’édition du code de la même unité (synchronisées entre elles en temps réel). • La version 11 Alexandria ajoute le muti concepteur de fiches. Déplacé sur un autre écran, sa résolution s’adapte à celle de l’écran.
  • 17. Les évolutions de l’IDE • Les fenêtres d’affichage d’exceptions ont maintenant un bouton « copier » pour simplifier les remontées d’erreurs. Cette modification est également valable dans les projets VCL.
  • 19. Les évolutions de la RTL • Mise à niveau et correctifs sur la librairie ZIP et la classe TZipFile. ZIP64 est maintenant pris en charge comme la suppression de fichiers dans une archive. • Amélioration de la prise en charge de grosses structures de données et du fonctionnement en 64 bits pour les listes, les dictionnaires et les flux. • Nouvelles optimisations et améliorations de performance dans la RTL et notamment la gestion des tableaux dynamiques.
  • 20. Les évolutions de la RTL • Ajout de helpers sur TDateTime avec ajout de nouvelles fonctions de conversions ou récupération de dates/heures comme la fonction UTCNow. • StrToDate() a été encore améliorée pour prendre en compte des formats non traités jusque là. • Ajout de helpers sur TCurrency • Ajout d’une classe TNoRefCountObject • Ajout d’une classe TPointerStream pour les développeurs désireux d’accéder directement à la mémoire sous forme de flux, mais danger !
  • 21. Les évolutions de la RTL • Possibilité de créer une liste ou un dictionnaire directement à partir d’un tableau. • Modifications sur RTTI pour l’appel de méthodes sur des tableaux ouverts. • On peut créer une nouvelle instance d’interface par la fonction System.Generics.Defaults._MakeInterfaceInstance qui permet d’associer des méthodes anonymes aux différentes méthodes d’interface.
  • 22. Les évolutions de la RTL • Les développeurs de composants et extensions de l’IDE doivent faire attention à la normalisation des identifiants de plateformes à utiliser dans les directives de compilation et les attributs. • pidOSXArm64 a été ajouté pour la plateforme macOS ARM64
  • 23. Les évolutions de la RTL • Support de chemins d’accès aux fichiers de plus de 260 caractères sur les OS qui le gèrent. • Les exceptions EInOutError et EInOutArgumentException permettent de savoir de quel fichier il s’agit avec la nouvelle propriété Path. • UTF8ToString a été modifiée. Certaines versions sont dépréciées. Vérifiez vos projets si vous l’utilisez. Passez par UTF8ArrayToString() en utilisation de tableaux dynamiques si vous utilisiez la version dépréciée.
  • 24. Les évolutions de la RTL • ParseJSONValue est désormais disponible sur tous les types descendants de TJSONValue. Plus besoin de passer par TJSONObject pour récupérer autre chose, mais le transtypage final reste d’actualité. • TJSONObject.AddPair a une version avec un entier qui évitera de bidouiller en créant un TJSONNumber lors de l’appel.
  • 25. Les évolutions de la PPL et des threads
  • 26. Les évolutions de la PPL et des threads • Possibilité de récupérer les statistiques d’un pool de processus. (TThreadPoolStats.Get) • TThread.GetTickCount64 fait son apparition pour les projets 64 bits et peut remplacer Thread.GetTickCount (retournant une valeur 32 bits) • Ajout de l’événement onSynchronize (en méthode de classe) sur TThread.
  • 28. Les évolutions de FireDAC • Mise à niveau des drivers pour les moteurs de bases de données PostgreSQL (version 13) et Oracle (version 19c). • Ajout de la valeur soDigitsAsNumber à TFDSortOption qui fonctionne comme TCompareOption de Systenm.SysUtils. • Améliorations (non détaillées) au niveau de l’écran de monitoring de FireDAC. • Prise en charge du VendorHome du driver Firebird s’il est renseigné (sinon ça reste le dossier ./bin par rapport à l’exécutable).
  • 30. Les évolutions de la VCL • Les DPI sont maintenant gérés par le concepteur de fiches et stockés dans les DFM. Une option d’environnement permet de définir vos choix pour votre poste de développement. • Amélioration de la prise en charge du Remote Desktop dans le cadre du développement avec l’IDE comme pour toutes les applications VCL recompilées à partir de cette version.
  • 31. Les évolutions de la VCL • Le concepteur de fiches peut afficher le style en cours de la fiche et des composant. Une option d’environnement permet de l’activer pour en bénéficier. • Par défaut c’est le style Windows 10 qui est utilisé. (d’où le changement de look de la barre de titre de la fiche en cours de conception). • « Segoe UI » remplace « Tahoma » comme fonte par défaut sur les projets VCL. Ca peut avoir un impact sur vos interfaces utilisateurs, vérifiez vos écrans après recompilation.
  • 32. Les évolutions de la VCL • Le composant TRichEdit prend en charge la détection d’URL, la transparence et le correcteur orthographique grâce à la prise en charge de la version 4.1 de l’API Windows correspondante. • Suppression de pas mal de code historique notamment lié à Windows XP. • Possibilité d’avoir des cases à cocher (3 états) dans le composant TTreeView • De nombreuses modifications sur tout un tas de composants (ajout de propriétés ou d’événements, prise en charge de la molette de la souris, gestion du REDO/UNDO sur des sélections)
  • 33. Les évolutions de la VCL • Ajout du composant TDBLabeledEdit et modification de l’héritage de TCustomLabeledEdit puis TDBEdit permettant d’utiliser un masque de saisie sur ces composants. • Ajout d’une marge intérieure dans le TCustomMemo (propriété « EditMargins ». Impact sur TMemo, TDBMemo, TRichEdit et TDBRichEdit.
  • 34. Les évolutions de la VCL • La fonte de l’entête des TGroupBox est modifiable. Le contour peut être désactivé. • TComboBox donne accès à la taille de la liste affichée lorsqu’on clique sur le bouton qui l’ouvre.
  • 35. Les évolutions de la VCL • TWICImage (qui sert pour les TBitmap) gère maintenant les frames des images multiframes (comme par exemple des TIFF). • TCoolBar permet d’afficher automatiquement les chevrons si la place pour afficher ses icones est insuffisante. • Le format des valeurs monétaires et leur type d’affichage a été étendu dans TNumberBox. • La variable booléenne TControl.RaiseOnNonMainThreadUsage permet de déclencher une exception si on crée un composant Windows (descendant de TWinControl) dans un thread secondaire.
  • 36. Les évolutions de la VCL • TScrollBox prend en charge la molette de la souris. Testez vos logiciels après recompilation car il peut y avoir un impact sur vos choix d’interface utilisateur. • Suppression de la propriété OldCreateOrder sur les TDataModule et les TForm. Ca ne devrait avoir aucun impact sur les projets existants.
  • 37. Les évolutions de la VCL • StyleUtils.inc devient StyleUtils.pas On y trouve les valeurs globales utilisées au niveau des styles et on peut par conséquent les modifier plus facilement qu’avec le .inc Attention : Embarcadero se réserve le droit d’y faire des modifications à l’avenir rompant potentiellement la compatibilité ascendante.
  • 38. Les évolutions de FireMonkey
  • 39. Les évolutions de FireMonkey • Le concepteur de fiches évolue pour proposer des guides de placement des composants et des infobulles. • Modifications (non visibles pour les développeurs mais visibles pour les utilisateurs) concernant la prise en charge du High DPI sous Windows avec passage comme c’était déjà le cas pour les autres plateformes à des pixels indépendants de l’écran au du pixel classique.
  • 40. Les évolutions de FireMonkey • Refactorisation de certains services de plateformes permettant de mieux séparer Mac et Windows. • Modifications sur les services de plateformes suivants : IFMXSaveStateService, IFMXDeviceService, IFMXVirtualKeyboardService, IFMXTimerService, IFMXLoggingService, IFMXMenuService, IFMXMultiDisplayService • Modifications au niveau des unités de mesure : FMX.Platform.Metrics.*
  • 41. Les évolutions de FireMonkey • Prise en charge de l’API 30 d’Android demandée par Google pour diffusion sur le Play Store. • Mise à niveau du support pour Android X, in-app purchase (Google Play Billing v4) et le Play Store. • Prise en charge de plusieurs classes.dex pour simplifier le support de librairies Android externes. • Les projets existants doivent mettre à jour la liste de leurs dépendances aux librairies Android standard pour être recompilables avec la version 11 Alexandria (et ne seront plus compatibles avec les versions antérieures une fois fait).
  • 42. Les évolutions de FireMonkey • Le composant TWebBrowser de FireMonkey prend maintenant en charge WebView2 lié à Microsoft Edge plutôt que Internet Explorer sous Windows. • Sous Android le TWebBrowser prend maintenant en charge l’envoi (upload) de fichiers. • Ajout de méthodes de conversion de position : ScreenToLocal / LocalToScreen, ConvertLocalPointFrom / ConvertLocalPointTo • Le pack d’accessibilité FMX est maintenant préinstallé, plus besoin de le faire à part si on l’utilise.
  • 43. Les évolutions de FireMonkey • Des modifications et améliorations sur la prise en charge du Z-Order entre des composants système, de plateforme et stylés sur toutes les plateformes.
  • 44. Les évolutions de FireMonkey • Suppression de l’assistant de création de projets « Application FireMonkey Metropolis UI ». La version VCL est toujours présente, mais pour combien de temps ? Si vous créez des projets Metropolis UI manifestez vous.
  • 45. Les évolutions du Bluetooth
  • 46. Les évolutions du Bluetooth • Nombreux correctifs sur la prise en charge du Bluetooth et du Bluetooth LE. • Amélioration du support des beacons. • Mise à niveau des API correspondantes sur toutes les plateformes.
  • 47. Les évolutions des librairies web
  • 48. Les évolutions des librairies web • Prise en charge de http/2 sous Windows. • Ajout de la propriété ProtocolVersion à la classe THTTPClient et ses dépendances. • Possibilité de gérer les clés publiques d’un certificat via TCertificate.PublicKey dans System.Net.URLClient • Ajout d’un encodage en base64 sur les URL avec TNetEncoding.Base64URL et TBase64URLEncoding.
  • 49. Les évolutions des librairies web • Ajout du composant TRESTRequestDataSetAdapter pour transférer automatiquement des ensembles de données lors d’une requête. • Ajout de time out (ConnectTimeOut, ReadTimeOut) sur les composants TEMSProvider, TKinveyProvider et TParseProvider • Remplacement de gethostbyname() par getaddrinfo() dans toute la RTL. • TLS 1.3 est pris en charge sur Windows pour le composant TNetHTTPClient et la classe THTTPClient.
  • 50. Les évolutions des librairies web • Modifications au niveau de TSocket (dont dépendent tous les composants réseau)
  • 51. Les évolutions des librairies web • ContentType est devenu une chaine, cela permet d’y mettre ce qu’on veut librement dans les composants (TNetHTTPClient, TRESTClient) et librairies sous-jacentes. Impact possible sur les projets existants. Testez après compilation.
  • 52. Les évolutions de WebBroker
  • 53. Les évolutions de WebBroker • Possibilité de récupérer la taille de la pile en mode DLL ISAPI • Amélioration du support du transfert de gros fichiers (plus de 2Gb) en download (lié aux améliorations sur les flux).
  • 54. Les évolutions de DataSnap
  • 55. Les évolutions de DataSnap • Possibilité de spécifier une URI personnalisée associée à une méthode pour la traiter grâce à la classe TDSMethodMapEvent • TDSConnection bénéficie de la nouvelle propriété ConnectionTimeOut
  • 56. Les évolutions de RAD Server
  • 57. Les évolutions dans RAD Server • Support du passage de paramètres POST en multipart/form-data (passage de données avec d’éventuels fichiers). • Prise en charge de paramètres transférés par le nouveau composant TRESTRequestDataSetAdapter ou en utilisant TRESTResponseDataSetAdapter.
  • 58. Les évolutions dans RAD Server • RAD Server est désormais disponible en version lite. • Cette version embarque IBToGo au lieu d’Interbase pour sa gestion interne. • Des outils de déploiement de RAD Server sont disponibles sur GetIT. L’avantage de la version lite c’est qu’il n’y a que le serveur à déployer ce qui simplifie les choses. • La licence de déploiement est plus permissive et permet un déploiement illimité.
  • 60. Les évolutions de Delphi • Ajout de la plateforme ARM 64 bits (Apple Silicon) pour Mac. • Possibilité de générer des binaires universels pour macOS (embarquant du x86_64 et ARM64 dans le même fichier). • Dépréciation de Macapi.QTKit (non dispo sur ARM64) • Suppression de Macapi.Quicktime
  • 61. Les évolutions de Delphi • Les versions Enterprise et Architect (permettant de cibler Linux) prennent en charge WSL 2 (Windows Subsystem for Linux) comme les distributions Linux majeures. • Mise à niveau de FMX Linux.
  • 62. Les évolutions de Delphi • Rupture de compatibilité avec les anciennes versions pour ces nouveautés : • Possibilité d’utiliser le underscore dans des valeurs numériques pour visualiser un format ou une grandeur. Ils sont ignorés à la compilation. • Possibilité de saisir des valeurs en format binaire avec le symbole « % » devant. • Prise en charge des instructions assembleur AVX-512 dans l’assembleur en ligne. • A n’utiliser que si vous ne travaillez plus dans des versions antérieures de Delphi.
  • 63. Les évolutions de Delphi • De nombreux retours sur le serveur LSP (Langage Server Protocol utilisé pour « code insight ») ont été traités. Des améliorations ont été mises en place. • Les fichiers inclus (généralement d’extension .inc) sont maintenant pris en charge. • L’ancien mode d’assistance a été complètement retiré.
  • 64. Les évolutions de Delphi • LSP suit un protocole standard. Il est possible de l’interfacer avec des éditeurs de codes externes pour avoir « code insight » dedans. • Embarcadero propose son serveur LSP sous forme d’extension pour VSCode depuis la Visual Studio Marketplace. Opérationnel uniquement sous Windows et sur le poste de développement sur lequel Delphi (ou RAD Studio) est installé.
  • 65. Les évolutions de C++Builder
  • 66. Les évolutions de C++Builder • Un nouveau formateur de code a été mis en place. Il se base sur clang-format et permet de gérer ses configurations habituelles. • Il est possible d’activer un formatage en cours de frappe ou à l’enregistrement des fichiers sources.
  • 67. Les évolutions de C++Builder • Focus sur l’interopérabilité entre Delphi et C++Builder du côté RTTI et langage C++. • Mise à disposition de Clang d’accès RTTI aux types Delphi. • La fonction typeid() a été étendue aux types Delphi. • Les classes Delphi bénéficient maintenant de make_shared<> et make_unique. • On peut utiliser des smart pointer sur des types Delphi.
  • 68. Les évolutions de C++Builder • Travail sur la compatibilité des chaînes et la simplification de passage d’un format à l’autre. • str::string_view pour les chaines Delphi. • Simplification au niveau des affectations. • Ajout des méthodes to_string() et from_string() sur les devises, dates, entiers, décimaux et variants. • Le compilateur émet un warning pour les interfaces ne dérivant pas de IUnknown.
  • 69. Les évolutions de C++Builder • Poursuite du travail sur la refonte de l’interception des exceptions démarré en 10.4.2 afin de traiter des cas tordus qui ne passaient pas les tests jusque là. • Amélioration de la compatibilité avec CMake.
  • 71. Conclusion • En apparence rien de révolutionnaire dans cette version 11 Alexandria mais tout de même plus de 800 tickets clients (anomalies, demandes et suggestions) pris en compte. • Le travail sur le High DPI est arrivé à son terme et nous permet de passer à la vitesse supérieure dans nos migrations et adaptations de projets VCL existants.
  • 72. Conclusion • La prise en charge de Windows 11, Android API 30, macOS et iOS dans leur dernière version, devraient permettre de travailler sereinement sur l’année qui vient et migrer les logiciels en douceur vers la nouvelle génération d’appareils chez nos utilisateurs. • La version 11 Alexandria ce sont aussi de nombreuses évolutions sous-jacentes, pas forcément visibles (ni listées ici) mais que vous sentirez au quotidien et dont vos utilisateurs bénéficieront par une simple recompilation de vos projets.
  • 73. Conclusion • Pas encore le droit d’en dévoiler plus mais d’autres fonctionnalités de grand intérêt sont aussi présentes dans cette nouvelle version au niveau de l’IDE. Elles devraient être dévoilées par Embarcadero d’ici quelques semaines.
  • 75. What next ? • Prochaine présentation le jeudi 30 septembre 2021 à 14 heures : « Coder sans coder : Delphi en mode nocode c'est possible ! » https://www.twitch.tv/patrickpremartin • Je vous montrerai comment développer des logiciels et applications mobiles avec Delphi sans faire une seule ligne de code. Idéal pour faire du prototypage de logiciels, des démos ou même des programmes complets.
  • 76. What next ? • Prochaine présentation le jeudi 30 septembre 2021 à 14 heures : « Coder sans coder : Delphi en mode nocode c'est possible ! » https://www.twitch.tv/patrickpremartin • Infos sur https://developpeur-pascal.fr/p/___00n-coder-sans-coder- delphi-en-mode-nocode-c-est-possible-webinaire-le-30-septembre-a- 14-heures.html
  • 77. What next ? • La rediffusion de cette présentation sera visible sur la chaîne YouTube de Barnsten dans quelques jours. https://www.youtube.com/c/BarnstenFrance • Elle sera également mise en ligne dans la rubrique « conférences » du site Serial Streameur accompagnée de ce PDF. https://serialstreameur.fr/conferences.php
  • 79. Ressources en ligne • Les nouveautés de la version 11 Alexandria https://docwiki.embarcadero.com/RADStudio/Alexandria/en/What% 27s_New • Les notes de version https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Release _Notes • Liste des tickets publics pris en charge https://docwiki.embarcadero.com/RADStudio/Alexandria/en/New_fe atures_and_customer_reported_issues_fixed_in_RAD_Studio_11.0
  • 80. Ressources en ligne • Documentation de RAD Studio 11 Alexandria : https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Main_P age • Livres sur Delphi et le Pascal : https://delphi-books.com/en/ • Forum d’entraide francophone : https://www.developpez.net/forums/f15/environnements- developpement/delphi/
  • 81. Ressources en ligne • Serial Streameur (VOD) : https://serialstreameur.fr • Apprendre Delphi (cours sur Delphi) : https://apprendre-delphi.fr • Développeur Pascal (blog): https://developpeur-pascal.fr
  • 83. Contacts • Patrick Prémartin pour formations ou coups de pouces ponctuels : patrick.premartin@olfsoft.com ou de préférence https://developpeur-pascal.fr/contact/ • Barnsten pour vos questions techniques, achats et renouvellements de licences : equipe@barnsten.com ou depuis le tchat sur le site https://www.barnsten.com/fr/