3 pièce(s) jointe(s)
L’EDI Lazarus 1.8 est disponible, avec du retard mais fort de sérieuses améliorations
Pièce jointe 333241
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.
Pour ceux qui désireraient étendre les fonctionnalités de l’EDI ou tout simplement en tirer parti, qu’ils sachent que la nouvelle fonction LazarusIDE.FindUnitsOfOwner peut lister l’ensemble des unités utilisées par un projet ou un paquet.
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
:fleche: Que pensez-vous de cette nouvelle version de Lazarus ?
:fleche: Avez-vous l'intention d'utiliser cette nouvelle version de l'EDI ?
Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation avec Lazarus.
Erreur a l'installation de fpc
Bonjour,
J'ai voulu installer cette version a partir des 3 fichiers .deb (fpc,fpcsrc,lazarus)sur linux,
mais lors de l'installation de fpc_3.0.4-1_amd64.deb j'ai en rouge le message suivant:
Erreur: Casse le paquet existant "fpc" car en conflit avec fpc()
Pas vraiment convaincu Sergio
@sergio_is_back, c'est vraiment une question de point de vue alors, car certains de tes arguments sont justement pour nous (dans ma boîte) l'inverse et notamment ce qui nous pose problème.
C'est d'autant plus flagrant que deux "environnements" de développement ce côtoient dans la boite : DotNet et Delphi.
Je parle de la "large communauté" et des "bibliothèques libres en quantité", et bien nous pensons justement tout l'inverse. Pour un même problème, il est souvent difficile de trouver des ressources en Delphi. Que ce soit en terme de recherche de bugs/problèmes, exemples etc. (par exemple des recherches sur StackOverflow), cela est souvent limité ou très vieux. Bien sûr comparé aux langages les plus populaires.
Pour les bibliothèques disponibles en quantité, franchement pareil, pas vraiment d'accord. Comparé aux ressources disponibles pour les autres langages "génériques" (Java, .net/C#, etc.) ou encore web, il y a un gap énorme. Il n'y a qu'à regarder les différents package managers, comme NuGet, npm etc.
Il en est pareil pour le support par des produits tiers : combien de fois nous nous sommes retrouvés à développer nous-mêmes car, par exemple, un service fournit son API en C#, Java, PHP, Python, etc., mais Pascal non. Alors multiplé par n fois, eh bien ca coûte vite cher.
Depuis 6 ans que je travaille dans ce double contexte, je me rends de plus en plus compte des manques de ce niveau. On se retrouve souvent à devoir soit faire nous-mêmes, soit payer car les seules "bibliothèques" vraiment fiables sont payantes, et souvent assez chères car peu de concurrence.
Attention, Pascal et Delphi ont des qualités, je ne dis pas le contraire, je suis assez d'accord avec tes premiers arguments, à part pour le développement mobile, qui m'avait laissé une impression "limitée" après l'effet "wahou" d'une app basique.
En fait, j'ai l'impression que le problème est le suivant :
L'environnement Delphi n'a pas d'avantage particulier, tout en étant globalement bon.
Pour un langage généraliste, il reste trop limité en terme de communauté ou de composants / bibliothèques. De ressources quoi.
Et l'utilisation en tant que langage spécialisé, eh bien dans chaque domaine il y a plus adapté que Delphi. Du coup la plupart des développement Delphi se font à cause de l'historique des boîtes, soit en terme de logiciel soit en terme de compétences.
J'espère que Delphi va trouver le bon équilibre, mais vu la concurrence et la multitude de choix sur ce marché, j'y crois moyen.
Même les innovations n'attireront pas vraiment à cause de l'image de Delphi auprès de beaucoup de dev. Ils iront plutôt vers de la nouveauté, même moins aboutie. Ce qui est dommage on est d'accord.
Insallation 1.8 realisee.
Citation:
Envoyé par
microb
Bonjour,
J'ai voulu installer cette version a partir des 3 fichiers .deb (fpc,fpcsrc,lazarus)sur linux,
mais lors de l'installation de fpc_3.0.4-1_amd64.deb j'ai en rouge le message suivant:
Erreur: Casse le paquet existant "fpc" car en conflit avec fpc()
En fait,j avais déjà 2 versions de FPC j'ai tout nettoyé et j ai réussi l'installation de lazarus 1.8