Dans l'idée seulement (je ne parle pas Delphi) voici comment je ferais (si j'avais la méthode)
Il faudrait partir d'un point de ton Espace, appelons le Remplisseur
Admettons que ton Remplisseur possède une couleur R et que ton Espace possède une couleur E.
Il te faut créer deux piles, la première ne contient que ton Remplisseur et la deuxième est vide au départ, mais également une liste contenant tous les points que tu as déjà traité (vide au départ).
Tant que ta première pile n'est pas vide, tu regardes chaque Remplisseur qu'elle contient, tu le rempli de la bonne couleur, puis tu regardes chacun de ces Voisins (verticalement ou horizontalement comme un +).
Si le Voisin est de couleur R ou Eet qu'il n'a pas encore été traité (d'où l'importance de la liste), alors tu le place dans la deuxième pile, sinon tu ne fais rien. Une fois la première pile vide, tu l'inverse avec la deuxième (les Voisins deviennent donc des Remplisseurs).
En suivant ce raisonnement je pense que tu ne devrais pas avoir de récursivité infinie (ps : ne pas oublier le cas du bord de l'image, qu'il faudrait considérer comme n'étant ni de couleur E ni de couleur R)
Un exemple pour mieux expliquer ce à quoi je pense (au cas où je me serai mal exprimé):
Sur mon clavier numérique j'ai les touches 1,2,3,4,5 qui forment mon espace à colorier, (6,7,8 ne sont pas de la bonne couleur, la couleur de 9 n'a pas d'importance), je clique sur le 4 pour recolorier mon espace.
Tour de boucle 1 :
Pile1=4, Pile2=vide, Liste=vide
Je colorie 4
Je regarde les voisins de 4 (1,5,7) 1 et 5 sont de la bonne couleur
Pile1=vide, Pile2=1,5, Liste=4
J'inverse les piles
Tour de boucle 2 :
Pile1=1,5, Pile2=vide, Liste=4
Je colorie 1
Je regarde les voisins de 1 (2,4) 2 et 4 sont de la bonne couleur mais 4 a déjà été traité
Pile1=5, Pile2=2, Liste=4,1
Je colorie 5
Je regarde les voisins de 5 (2,4,6,8) 2 et 4 sont de la bonne couleur mais ont déjà été traités
Pile1=vide, Pile2=2, Liste=4,1,5
J'inverse les piles
Tour de boucle 3 :
Pile1=2, Pile2=vide, Liste=4,1,5
Je colorie 2
Je regarde les voisins de 2 (1,3,5) 1, 3 et 5 sont de la bonne couleur mais 1 et 5 ont déjà été traités
Pile1=vide, Pile2=3, Liste=4,1,5,2
J'inverse les piles
Tour de boucle 4 :
Pile1=3, Pile2=vide, Liste=4,1,5,2
Je colorie 3
Je regarde les voisins de 3 (2,6) 2 est de la bonne couleur mais a déjà été traité
Pile1=vide, Pile2=vide, Liste=4,1,5,2,3
J'inverse les piles
Pile1=vide : Fin de la boucle -> L'espace a été totalement recolorié
La confiance n'exclut pas le contrôle