Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

L'EDI Lazarus 1.8 est disponible
Avec du retard mais fort de sérieuses améliorations

Le , par gvasseur58

60PARTAGES

10  0 


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

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.

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de tourlourou
Modérateur https://www.developpez.com
Le 07/12/2017 à 14:37
En résumé : le Pascal objet utilisé au sein des EDI/RAD Delphi et lazarus permet notamment le développement visuel rapide d'applications graphiques multi-plateformes compilées.
Par rapport au C, il ne permet pas nativement le développement de programmes de très bas niveau (style drivers tournant en ring 0 sous Windows), mais rien d'autre d'impossible.
Il offre une syntaxe plus rigoureuse et plus claire (c'est un langage idéal pour la pédagogie) et la compilation est rapide, en une seule passe.
Il permet également l'utilisation aisée de librairies, composants visuels et unités externes.
A titre d'exemple, le client Skype était jusqu'il y a peu écrit sous Delphi.
5  0 
Avatar de Alcatîz
Responsable Pascal, Delphi et Assembleur https://www.developpez.com
Le 14/12/2017 à 6:29
Citation Envoyé par gvasseur58 Voir le message
[...] une différence énorme entre Delphi 6 et Lazarus ? [...] alors que le second ne compte que sur des bénévoles. Si l'aide n'existe pas dans un domaine, c'est que personne ne s'en est occupé. Idem pour les fonctionnalités...
Un produit de la taille et de la qualité de Lazarus, à ce prix-là, qui plus est développé par aussi peu de gens et dans de telles conditions, c'est un véritable bijou. Alors oui, certaines faces ne sont peut-être pas complètement taillées, mais cela n'enlève rien à sa valeur intrinsèque.

Chapeau les artistes.
5  0 
Avatar de sergio_is_back
Membre émérite https://www.developpez.com
Le 08/12/2017 à 9:02
Citation Envoyé par Aiekick Voir le message
c'est utilisé encore dans quels milieu le pascal ? pour de l'embarqué ? on peut faire des interfaces graphiques avec ou c'est plutôt des appli console ?

quelles sont les avantages par rapport au C, ou langages de plus haut niveau ?
Dans l'industrie, dans l'embarqué (là c'est plus tôt FreePascal surtout sur tout ce qui est ARM), etc.

Je développe depuis plus 20 ans en DELPHI et ma boîte a des dizaines de clients.
On peut faire des applications console, des services, des IHM client lourd magnifiques, et même des services WEB...
Des applications Android et iOS avec les bibliothèques FireMonkey.

Les avantages par rapport au C :

Le Pascal est très proche du hardware (il est possible d'inclure du code assembleur, de détourner des interruptions, etc.), les pointeurs se manipulent aisément, ils peuvent être typés ce qui évite bien des erreurs... De plus, le Pascal apporte le support du modèle objet.

Ajoute à cela une large communauté, des bibliothèques libres en quantité pour tout et n'importe quoi.

J'ai coutume de dire que si tu ne sais pas coder en truc en Pascal, c'est que ce n'est tout simplement pas codable...
4  0 
Avatar de ManyTwo
Membre du Club https://www.developpez.com
Le 08/12/2017 à 11:10
@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.
4  0 
Avatar de BeanzMaster
Membre expert https://www.developpez.com
Le 13/12/2017 à 8:01
Voila



4  0 
Avatar de gbegreg
Membre émérite https://www.developpez.com
Le 07/12/2017 à 22:23
Citation Envoyé par Aiekick Voir le message
c'est utilisé encore dans quels milieu le pascal ? pour de l'embarqué ? on peut faire des interfaces graphiques avec ou c'est plutot des appli console ?

quelles sont les avantages par rapport au C, ou langages de plus haut niveau ?
En complément de la réponse de tourlourou, il y a quelques mois, à l'occasion des 22 ans de Delphi (je sais : ce n'est pas Lazarus mais c'est du Pascal Objet ), l'éditeur de Delphi Embarcadero avait réalisé un petit magazine avec quelques exemples récents d'utilisations et d'applications. Le magazine est en ligne ici.
3  0 
Avatar de sergio_is_back
Membre émérite https://www.developpez.com
Le 08/12/2017 à 13:33
Citation Envoyé par ManyTwo  Voir le message
Combien de fois nous nous sommes retrouvés à développer nous-même car par exemple un service fournit son API en C#, Java, PHP, Python, etc., mais Pascal non. Alors multiplé par n fois, et bien ça coûte vite cher.

Je travaille avec Delphi avec du matériel RFID de différents constructeurs, des graveurs laser, des imprimantes thermiques, des lecteurs code-barre 1D, 2D, des automates,
des web services, même des appels RFC vers SAP, des lecteurs de tag passifs, actifs, ... et tuti quanti..., des message queues... du SFTP, du SSH, du telnet, du HTTP... des
bases de données diverses et variées (même GUPTA DB je ne suis pas sûr que grand monde connaisse).

Jamais eu besoin de tout développer, juste d'adapter des choses existantes pour coller au besoin particulier...

Citation Envoyé par ManyTwo  Voir le message
un service fournit son API en C#, Java, PHP, Python etc., mais Pascal non

Ah bon ?

J'ai tous les sources des bibliothèques et des composants que j'utilise, du coup j'ai toutes les API (je n'utilise que rarement de composants propriétaires à cause de ça justement, à part certains qui sont bien documentés car là tu n'as pas toujours les sources et la documentation du composant ne documente pas toujours tous les paramètres).

En C# et en JAVA c'est un code managé, du coup le manifest et les commentaires suivent les librairies et documentent les API, en PHP et en Phyton c'est de l'interprété donc tu as le sources pour les API même si le développeur n'a pas mis de commentaires...

J'ai aussi développé en .Net et en Java, il y a pas mal d'API qui sont documentées du style :
Code Java : Sélectionner tout
1
2
3
Objet.Fonction(int Value) 
 Value integer 
 return Ptr
C'est pas plus parlant que le code insight de Delphi...
Pas d'indication de ce que fait la fonction.
Pas d'indication sur les valeurs possibles pour Value.
Ça renvoie un pointeur ou un objet...

Après je suis d'accord, la documentation depuis l'époque Borland n'est plus au niveau du produit et c'est fort dommage, mais un gros effort est fait depuis quelques mois pour rattraper le retard...

Après il est de la responsabilité de celui qui développe une API de la documenter correctement et il existe de nombreux addons tiers avec Delphi qui permettent de générer la documentation à partir d'un source... Ce n'est pas un problème.
3  0 
Avatar de BeanzMaster
Membre expert https://www.developpez.com
Le 11/12/2017 à 0:35
Salut à tous quelle bonne surprise cette version 1.8, je viens tout juste de l'installer ce week-end avec en option "le cross-compiling". J'ai juste pris soins de désinstaller mes autres versions RC et 1.6.4.
Beaucoup de chose au niveau de l'EDI dans cette version (même comparer à la 1.8rc4) et c'est tant mieux

De nouvelle icônes toutes fraiches et très agréable. Et cela c'est sans compter les paquets que l'on peux installer pour améliorer l'EDI comme "AnchorDockingDsgn 0.5" qui pour l'instant me semble bien plus stable qu'auparavant. Ajouté à cela le paquet "Sparta_DockedFormEditor" et "Sparta_MDI" et on se croirait presque dans Delphi. Que du bonheur. L'editeur de boite de message "messagecomposerpkg". La gestion de groupe de projets "LazProjectgroup 0.2" et pour finir en beauté, le paquet "OnlinePackageManager 1.0" qui permet d'installer et/ou de mettre à jour un bon nombre de librairies de composants sans prise de tête. Parmis ceux-ci on trouve BGRABitmap, Graphics32, Indy, ZeosDB, LazSerial de notre ami JurassicPork et j'en passe ; il y en a pas loin d'une centaine. C'est vraiment très pratique. Vous pouvez consulter le forum en anglais pour plus d'infos sur OnlinePackageManager. Il y a d'autres petites mises à jour sympathiques comme l'amélioration pour compléter le code avec ctrl+espace qui permet d'avoir accès à plus de petite chose comme les constantes et variables globales ou locales. la création du code de classe dans la partie implementation avec crtl+maj+x ou c, les déplacements avec ctrl+maj+plus flèche ect...
cf ici pour plus d'infos. Bref pas mal de petite choses très agréables au final.

Citation Envoyé par Jipété Voir le message
Que je n'en aurais pas grand chose à dire, je pense :

Dans l'attente, est-ce que quelqu'un pourrait me confirmer que la persistance du repliage de code fonctionne vraiment, avec par exemple une unité de 1000 à 2000 lignes ?
Parce qu'à l'heure actuelle, à chaque réouverture d'un projet en cours, il faut commencer par replier à nouveau le code qui avait déjà été replié la fois d'avant, une calamité...
Cela fonctionne Jipété ! et c'est vachement plus agréable et pratique

Je vous conseil vivement de l'installer, vraiment beaucoup de petits changements depuis la 1.6. Pour le moment je suis pas déçu. A voir si c'est le cas sous Linux aussi !



A+
3  0 
Avatar de Jipété
Expert éminent sénior https://www.developpez.com
Le 13/12/2017 à 19:14
Citation Envoyé par mm_71 Voir le message
Et une question relative au manque de doc : Il est conseillé de replacer pos et length par UTF8pos et UTF8length. Moi je veux bien mais c'est dans quelle unité tout ça ?
Quoi ? !
Tu es en train de nous dire que l'aide est toujours aussi nulle ? Genre tu tapes UTF8pos, tu mets bien le curseur au milieu, tu fais F1 et tu te fais insulter parce qu'il ne trouve pas ?
Mais bon sang, sous Delphi 6 (et peut-être même avant) ça fonctionnait, ça ! L'aide arrivait et tu voyais dans quelle unité se trouvait ton truc... Il y aura bientôt 20 ans...

Et vous voudriez que je migre ? Comptez pas sur moi !

C'est désespérant...
3  0 
Avatar de microb
Membre régulier https://www.developpez.com
Le 12/12/2017 à 19:23
Bonjour,
Sur mon premier PC sous linux mint (voir plus haut) j'ai eu des problèmes d'installation a partir des 3 fichiers deb
Erreur: Casse le paquet existant "fpc" car en conflit avec fpc() et autres que j'ai réglé en faisant du ménage.

Sur un 2 eme pc sous mint cinnamon,j'ai eu plus de soucis et surtout ,comme alcatiz le message
"Error while linking".
après installation a partir des 3 .deb

Le problème a été résolu en procédant de la sorte.
instalation de fpc par .deb puis sans rien changer :
re installation de fpc a partir d'un .tar.
Telecharger fpc-3.0.4.x86_64-linux.tar ici :
https://sourceforge.net/projects/fre...es/Linux/3.0.4
décompresser
cd fpc-3.0.4.x86_64-linux/
sudo ./install.sh
install fpc_src par .deb
install lazarus par .deb
2  0