[Resolu] Menu (Menu Backend fortement modifié) et PROGMEM (F)

Bonsoir
Merci pour vos réponses.
Je suis pas trop fan des macros non plus. J'ai lu beaucoup de critiques négatives.
Je suis reparti de zéro pour faire un test de la fonction F() (Dur de trouver des infos avec les moteurs de recherche sur ce nom)
J'ai d'abord fais

Serial.println(F("Test"));

J'ai donc rechercher la définition de Println dans print.h (j'ai bien appris sur l’héritage avec le WRITE) et j'ai récupéré la définition et le code pour utiliser F() en argument de fonction.
le truc c'est que ça utilise une classe "__FlashStringHelper" comme type de pointeur. C'est la que je suis pommé pour l'instant. Le code pour mon menu fonctionne a peu prés mais j'ai pas tout compris et j'aime pas ça. Par contre, j'ai gagné plus de 1000 octets de RAM libre a l’exécution et pour ça, je suis bien contant.
Je vais m’atteler à faire ma lib de mon menu en plus clair, je comprendrais mieux. Je me mélange les pinceaux avec tous mes testes.

Si quelqu'un a des liens vers des explications plus poussées sur le fonction F() et son utilisation, je suis preneur.
Merci
A+
Caape

EDIT:
Je viens de tester dans mon vrai programme et je bloque sur la déclaration de mon menu

J'ai juste ajouter le F() par rapport à avant (Je suis hors procédure, déclaration global)

MenuItem m1 = MenuItem(F("Demarrer"));

Ca me fais une erreur de compilation que je ne comprends pas trop :

b_50_menu_declaration:9: error: statement-expressions are not allowed outside functions nor in template-argument lists

d'ou le code suivant

MenuItem m1;

Ca fonctionne mais je dois faire l’affectation dans une procédure donc double de ligne mais s'il le faut, je le ferais.

comment faire plus simple?
merci

Caape