Bonjour à tous,
Il y a quelque temps, pour des besoins personnels, j'ai installé Microsoft Visual Studio Community 2017
En refaisant mes premier pas sous cet EDI, j'ai remarqué une petite chose plutôt pas mal dont je ne me souvenais plus.
En C# (je ne sais plus si c'est valable en C++) pour les Type Integer, float etc., nous disposons de fonctions qui sont attachées.
Avec Lazarus et FPC ces fonctions sont limitées. Et il faut passer par le nom du type de la variable pour y avoir accès. Je vous ai fait quelques petites captures :
Comme on peut le voir et je le disais, le nombre de fonctions est limité et ces fonctions ne sont pas vraiment utiles dans la pratique.
Sous Visual Studio certaine fonctions sont également attachées aux variables (en plus du type lui même) :
Mais sous Lazarus, on se prend une grosse erreur :
C'est alors que je me suis demandé s'il serait possible d'obtenir le même comportement avec Lazarus en utilisant des Helpers sur des types de variables comme le Char, Byte, Integer, Single, Double, String....
Et la réponse est oui !Il y a juste 2 conditions : l'unité doit être compilée en mode Delphi et il faut utiliser les même noms d'Helpers que ceux déjà définis par FPC.
Je vous propose donc une petite unité basée sur ces fameux Helpers
Les avantages sont clairs : plus besoin de se souvenir du nom de toutes les fonctions pour réaliser telle ou telle chose. Les fonctions peuvent être chainées. Résultat on code plus rapidement.
J'ai réalisé une petite démo qui vous montre tout ça :
J'ai testé sous Windows et Linux, tout fonctionne.
Petite information concernant les chaines de caractères String j'ai utilisé les fonctions présentes dans l'unité LazUTF8 ce qui permet de solutionner pas mal de petits problèmes liés à ce format de chaine
Il manque surement encore quelques fonctions. Et il manque des "helpers" pour gérer les types Int64, Extended. Mais pour l'instant cette unité me suffit (presque) en l'état.
Je vais ajouter encore quelques fonctions et améliorer les commentaires.
Si jamais, pour vos propre besoins, rien ne vous empêche de rajouter vos propres fonctions
J'aimerais poster ce bout de code dans les sources Lazarus.
Mais avant, J'aurais souhaité avoir vos avis, impressions et suggestions.
Vous trouverez cette petite merveille en pièce jointe : TypesHelpers.zip
Merci d'avance pour vos tests et retours.
A+
PS : Désolé d'avance j'ai tout commenté en Anglais "basique". Si vous ne comprenez pas, un petit coup de google translate devrait faire l'affaire (je vous conseille ce petit addons pour vos navigateur, qui est très pratique)
Partager