Developpez.com - Rubrique Lazarus

Le Club des Développeurs et IT Pro

Sortie de la version 2.0.4 de l'EDI multiplateforme Lazarus

Basée sur Free Pascal 3.0.4

Le 2019-08-13 17:23:46, par Alcatîz, Responsable Pascal, Lazarus et Assembleur
Sortie de la version 2.0.4 de Lazarus
Toujours basée sur Free Pascal 3.0.4

L’équipe de développement de Lazarus vient d’annoncer la sortie de la version corrective 2.0.4 de l’environnement de développement, toujours basé sur la version 3.0.4 de Free Pascal. Il s'agit d'une version corrective dans laquelle l'amélioration du support de Cocoa sur macOS X s'est taillé la part du lion. La liste de toutes les améliorations est fournie ici (en anglais).

Téléchargez Lazarus 2.0.4

Voici les plateformes supportées par Lazarus :

  • Windows : 2000, XP, Vista, 7, 8, 8.1 et 10, 32 et 64 bits.
  • FreeBSD/Linux, Gtk et Qt et Qt5, 32 et 64 bits.
  • macOS X : de 10.5 à 10.12, Carbon (32 bits), Cocoa (64 bits, en version beta), Qt et Qt5 (32 et 64 bits).


Source : Lazarus


Et vous ?
Allez-vous utiliser cette version corrective de Lazarus ?
Que pensez-vous des améliorations apportées ?

Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation avec Lazarus.
  Discussion forum
11 commentaires
  • matthius
    Inactif
    Envoyé par Jon Shannow
    Bonjour,

    Code :
    Lst_roles.AddItem( FieldByName('rol_nom').AsString, TOBJECT( FieldByName('rol_id').AsInteger));
    Puis pour récupérer l'élément
    Code :
    in_RolId := INTEGER( Lst_roles.Items.Objects[ Lst_roles.ItemIndex]);
    Mais en version 2.0.4 j'ai une erreur de compilation.

    JS
    TObject est un pointeur protégé qui peut être 32 bits en RISC ou 64 bits.
    Longint ne doit pas être utilisé pour ça. C'est soit Integer ou Int64. Ça n'est pas protégé.
    Ou ajoute du pointeur derrière tout ça.
  • tourlourou
    Modérateur
    Je pense qu'il s'agit d'une question de longueur des pointeurs et entiers qui a pu évoluer. Donc au lieu de Integer, essayer Int32 ?
  • tourlourou
    Modérateur
    C'est bien une dll 64 Bits ?
  • matthius
    Inactif
    Je ne vois pas l'intérêt de Cocoa. Il y a déjà QT dessus.
    Par contre si un logiciel libre permet de réaliser facilement un paquet Cocoa, je suis preneur.
  • Jon Shannow
    Membre extrêmement actif
    Bonjour,
    J'utilisais ce genre d'astuces dans mes listes pour associer des éléments de type entier dans des Listbox (ou combobox).

    Code :
    Lst_roles.AddItem( FieldByName('rol_nom').AsString, TOBJECT( FieldByName('rol_id').AsInteger));
    Puis pour récupérer l'élément
    Code :
    in_RolId := INTEGER( Lst_roles.Items.Objects[ Lst_roles.ItemIndex]);
    Mais en version 2.0.4 j'ai une erreur de compilation.
    u_roles.pp(141,32) Error: Illegal type conversion: "TObject" to "LongInt"
    u_roles.pp(245,56) Error: Illegal type conversion: "LongInt" to "TObject"

    Que dois-je faire pour corriger cette erreur de compilation ?

    Merci d'avance
    JS
  • Jon Shannow
    Membre extrêmement actif
    En effet, ça passe en changeant par asLargeInt et INT64.

    Merci à vous 2

    JS

    NB : Je ne peux pas encore faire de test, car apparemment, j'ai un problème de DLL SQLITE. TZConnection n'accepte pas ma DLL qui fonctionnait très bien en 1.8.x
  • Jon Shannow
    Membre extrêmement actif
    Envoyé par tourlourou
    C'est bien une dll 64 Bits ?
    Je crois que le problème vient de là en effet. Je travaillais en version hybride 32/64 et compilation en 32bit. Là, je suis passé en 64 bits, d'où les problèmes.
    Je pense que je vais avoir quelques soucis, mais, on se mettre au boulot, rien d'insurmontable

    Merci à toi
    JS
  • Jipété
    Expert éminent sénior
    Ce matin j'ai fait autrement :

    J'ai généré un autre disque virtuel, donc une autre install de Debian 10, une autre install de GDB, de libgtk2.0-dev (sinon patatras...), de fpc-laz, fpc-src, laz204 et après lancement de l'EDI j'ai d'abord fait F9, pour voir. Compil et exécution ok, je ferme le binaire et je lance la reconstruction de l'EDI et là, ça s'est bien passé sans erreurs.


    Est-ce à dire qu'un coup de F9 va générer des chemins ou paramètres absents ? J'ai autre chose à faire qu'à passer mon temps à générer des machines virtuelles juste pour tester (parce que ça aussi ça devient une abomination ! 2,2 Go de données compressées sur l'ISO avec 99 % de choses inutiles dans mon cas… Mais il n'y a plus d'installeur avec choix des choses à installer, et tout installer prend un temps dément, )
  • matthius
    Inactif
    Envoyé par Jipété
    Ce matin j'ai fait autrement :

    J'ai généré un autre disque virtuel, donc une autre install de Debian 10, une autre install de GDB, de libgtk2.0-dev (sinon patatras...), de fpc-laz, fpc-src, laz204 et après lancement de l'EDI j'ai d'abord fait F9, pour voir. Compil et exécution ok, je ferme le binaire et je lance la reconstruction de l'EDI et là, ça s'est bien passé sans erreurs.

    Les machines virtuelles intégrées dans une fenêtre n'ont plus aucun intérêt pour moi. Tout se fera pas GNU Linux plus tard, y compris Cocoa.

    Sachez qu'il est plus rapide, plus sûr et surtout possible d'installer deux versions de Linux sur votre ordinateur, voire tous les Linux que vous voulez en boot.

    pour un serveur mettre /tmp sur une partition disque dur à part. En virant Windows, je peux accélérer le swap si j'ai un disque dur en le mettant en premier.
  • devEric69
    Membre régulier
    Question subsidiaire : les mecs qui mettent en ligne les packages prennent-ils le temps de les tester ?
    On dirait bien que non…
    C'est plus compliqué que ça:
    - les "paquagistes" de Debian \ Ubuntu ont pour politique de faire les paquets avec la plus fine granularité possible. C'est louable et théoriquement, probablement plus sûr pour ne mettre à jour que de petites nouvelles dépendances sans toucher au reste de l'installation. Donc, en suivant cette politique, ils décomposent FCP et Lazarus en des sous-paquets. Bravo!

    Mais dans les faits, ça n'est pas bien si bien que cela, si on transgresse leur logique: celui qui installe Lazarus et FPC à partir des list.ppa officielles de Debian \ Ubuntu doivent être conscients ensuite, qu'ils ne doivent toujours faire leur mise à jour subséquentes que, et vraiment que toujours à partir des évolutions proposées de ces mêmes dépôts Debian \ Ubuntu! Si d'aventure, il installe un paquet récupéré depuis SourceForge, ou depuis GitHub, etc, alors la logique de découpe des paquets des "paquagistes" de Debian \ Ubuntu n'est plus respectée, et il transgresse leur politique et prend l'énorme risque d'installer des bouts de codes qui ne sont pas compatibles avec son installation originelle "made in Debian \ Ubuntu".

    Conclusion?
    ➔ soit vous faites votre installation à partir des paquets Debian \ Ubuntu (conseillé pour un novice qui veut juste tester l'EDI, et veut éventuellement le désinstaller facilement), et ne faites leur update qu'à, et seulement qu'à partir des évolutions (rares) de leurs dépôts officiels, quand ils en proposent.
    ➔ soit vous faites votre installation avec FCPupDeluxe (chaudement conseillé pour ceux qui utilisent Lazarus souvent): cet installateur est toujours au plus prêt des dépendances SVN des développements et de leurs dépendances réelles (il ne suit pas une simple politique de petits paquets, louable sur la forme, mais qui sur le fond ne comprend rien aux interactions \ dépendances entre une version de compilo., une version d'EDI, une version de débogueur, et des composants versionnés correctement proposés dans l'installateur de paquets depuis l'EDI Lazarus).