Développement divers



Présentation

Cette rubrique est consacrée aux exemples de développement concernant divers aspects de la programmation. Vous y trouverez de nombreux exemples sur des thèmes variés (manipulations JSON, génériques, RTTI, méthodes anonymes, surchage d'opérateur...).

Démo JSON



Cette démonstration vous permet de sérialiser un objet en fichier JSON et inversement en une seule ligne de code.

Cet exemple est basé sur un petit modèle objet déclarant une personne avec 3 attributs : le nom, le prénom et l'âge. J'utilise les génériques pour gérer une liste de personnes.

Vous pouvez créer des personnes, sérialiser l'objet listePersonnes dans un flux JSON (le fichier est automatiquement enregistré dans le répertoire de l'exécutable), vider l'objet listePersonnes en mémoire et enfin alimenter l'objet listePersonnes avec le fichier JSON précédemment enregistré.

D'un point de vue IHM, cet exemple utilise :
  • un style graphique (skin ou thème)
  • un multiview (bouton +) permettant d'afficher un petit formulaire surgissant pour créer une personne et de la rajouter à la liste.



Map/Reduce/Filter



GBEArray.pas est une implémentation simple et open source des fonctionnalités map/Reduce/Filter et autres pour Delphi. Le projet fourni avec cette unité est un exemple d'utilisation.



Démo PathFinder



Cette démonstration propose une implémentation de l'algorithme A* Wikipedia.
PathFinder permet de rechercher le chemin entre un point et un autre.

Ce projet utilise les génériques.

Démo TEdgeBrowser



Ce projet permet de voir l'utilisation du composant TEdgeBrowser fournit en standard à partir de Delphi Sydney (10.4).
C'est le projet que j'ai présenté lors du webinaire de présentation de Delphi 10.4.2 que vous pouvez retrouver sur Youtube https://www.youtube.com/watch?v=4YjKDnGQVRw.

Démo Génération aléatoire de labyrinthe



Cette démonstration propose une implémentation de la génération aléatoire de labyrinthes via la méthode de fuison aléatoire Wikipedia.
RandomMaze permet donc de générer aléatoirement des labyrinthes en 2D ou en 3D. Ces labyrinthes peuvent être parfaits ou complexes (c'est à dire avec des salles).