Après une attente de plusieurs mois, la version 1.8 de Lazarus est enfin disponible au téléchargement. Comme attendu, elle s’appuie sur la version 3.0.4 du compilateur Free Pascal : c’est d’ailleurs dans l’attente de la sortie officielle de ce dernier que la publication de Lazarus a pris du retard, le principe étant que l’EDI reste toujours fondé sur la dernière version stable du compilateur.
Les changements concernent à la fois la LCL (la bibliothèque standard de composants), l’EDI et une série de composants. Comme pour chaque nouvelle version, quelques adaptations limitées d’un code ancien pourront être nécessaires.
La LCL
- La LCL s’adapte désormais aux hautes résolutions. Ainsi, TApplication et TCustomForm disposent à présent d’une propriété Scaled liée aux options DPI du projet en cours. L’EDI Lazarus lui-même supporte ces résolutions.
- Une fiche peut être centrée par rapport à la zone de travail, dépendant elle-même de DefaultMonitor, grâce à la nouvelle valeur de position poWorkAreaCenter, permettant ainsi une meilleure prise en compte des écrans multiples.
- TToolButton dispose du nouveau style tbsButtonDrop qui dessine une flèche pointant vers le bas à droite du bouton. Contrairement à tbsDropDown, ce bouton ne comporte qu’une simple zone de clic afin d’activer DropDownMenu s’il est assigné. Par la même occasion, un nouvel événement OnArrowClick est déclenché en cas de clic sur la flèche, remplaçant ainsi l’ancien comportement qui déclenchait un OnClick plus général. Par ailleurs, une nouvelle propriété DropDownWidth de TToolBar permet de définir la largeur d’un bouton lorsque son style est fixé à tbsDropDown.
- Les éléments d’un menu (TMainMenu, TPopupMenu, TMenuItem) ont un fonctionnement qui se rapproche de celui de Delphi avec la propriété OwnerDraw. Malheureusement, cette amélioration ne concerne pour le moment que les utilisateurs de Windows.
- Enfin, le composant TDateTimePicker est muni d’une propriété Options qui autorise la modification de quelques aspects de son affichage tandis que le nouveau composant non visuel TTaskDialog permet à l’exécution d’afficher des dialogues enrichis comme ceux proposés par Windows, y compris sur les autres plates-formes.
L’EDI
- L’utilitaire en ligne de commande lazbuild (qui permet entre autres de construire l’EDI lui-même) est doté d’une nouvelle option --add-package-link afin d’enregistrer des paquets sans les reconstruire.
- Les Quick fixes, qui autorisent une correction rapide de certaines erreurs signalées dans la boîte des messages, s’enrichissent d’une possibilité de désactiver les conseils, notes et avertissements.
- La visibilité par défaut d’une méthode peut être définie dans les options des outils de code : suivre Complétion de classe puis Section par défaut des méthodes.
- Le modèle de code case ofall, qui crée automatiquement une structure case of à partir d’une série de cas, indente désormais le code produit selon les options adoptées par l’éditeur.
- La combinaison de touches Ctrl-Enter a été rendue plus performante dans sa reconnaissance des fichiers à ouvrir, en particulier avec les directives $I et $R.
- L’éditeur est dorénavant doté d’une coloration de la structure du code source. Cette coloration est obtenue simplement en cochant la case Schéma (global) dans les Options de Éditeur, partie Affichage, sous-partie Balisage et correspondances.
On notera enfin que la prise en charge de Win98 et WinNT est abandonnée.
Composants
- TSpinEditEx et TFloatSpinEditEx sont les versions étendues et indépendantes des plates-formes de TSpinEdit et TFloatSpinEdit. Ils apportent en prime la reconnaissance d’une valeur indéterminée (NullValue) et la configuration possible du comportement du composant si le texte entré n’est pas un nombre.
- La bibliothèque TAChart comprend un nouveau composant TChartComboBox permettant de choisir des styles selon la valeur de sa propriété Mode : style de la brosse, style du crayon, largeur du crayon, style du pointeur.
- Il est à noter que le paquet editortoolbar.lpk fait à présent partie de l’EDI lui-même et qu’il n’est par conséquent plus disponible en tant que tel.
Modifications à apporter à un code ancien
Même si les développeurs de Lazarus cherchent à conserver une compatibilité ascendante forte, il existe néanmoins quelques changements à prendre en compte pour la maintenance d’un code ancien.
Comme annoncé dès la version 1.6, certaines fonctions de traitement des chaînes sont obsolètes et ne sont plus accessibles par défaut. Malheureusement, le système adopté est loin d’être totalement cohérent et les informations fournies dans le wiki de Lazarus sont souvent approximatives. Ainsi est-il conseillé de remplacer les fonctions préfixées par UTF8 par leur équivalent Delphi préfixé par Ansi. Un simple essai avec la fonction Pos appliquée à un mot accentué montrera qu’il faut toujours utiliser UTF8Pos. Length renvoie elle aussi une valeur erronée : il faut utiliser UTF8Length pour obtenir une longueur correcte d’une chaîne accentuée.
D’autres incompatibilités de moindre importance sont fournies dans la page en anglais relative aux notes sur la version 1.8 de Lazarus.
Vous pouvez télécharger cette version de Lazarus ici.
Source : Site Lazarus
Que pensez-vous de cette nouvelle version de Lazarus ?
Avez-vous l'intention d'utiliser cette nouvelle version de l'EDI ?
Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation avec Lazarus.