Bonjour,

Je suis un amateur dans la programmation, je ne peux pas y passer beaucoup de temps de manière régulière, et je possède depuis peu une version XE8, le changement est radical depuis ma dernière version.
Grâce à notre ami SergioMaster, je me suis intéressé de plus près au FMX. J'utilisais jusqu'alors la librairie Graphics32, libre sur Sourceforge.
Voici l'application avec laquelle je m'occupe pour le moment.

- J'affiche une image avec des graphiques dessus. (papier millimétré)
- Les graphiques ont plusieurs zones, chaque zone contient plusieurs courbes.
- Par zone je choisis 3 points au moins afin de faire une transformation affine du système de coordonnées et afficher les données du graphique au passage de la souris.
- Une fois la transformation calculée, je dessine une grille avec les axes du graphique afin de vérifier que ceux-ci correspondent bien avec le graphique (position et échelle)
- Ensuite par courbe dessinée sur mon graphique, je choisis un nombre aléatoire de points, je fais une régression par les moindres carrés sur ces points et je dessine la courbe calculée pour voir si celle ci colle avec le dessin.
- J'enregistre le tout dans une base de données (access pour le moment). Les points du système de coordonnées, les points de la courbe et les coefficients de regression.

Voici l'approche envisagée:
-un TImageViewer qui affiche l'image
-comme enfant de mon TImageViewer: un TpaintBox qui serait redimensionné en temps réel avec le TimageViewer (quand je zoom). Ce paintbox sera redessiné souvent: A chaque changement de zoom, à chaque ajout de point ou changement de degré du polynome de régression)
-comme enfant de TImageViewer : une liste contenant des TSelectionPoint, qui me permettront de sélectionner des points dans les différentes phases de mon application.

Pour gérer le zoom de ma TImageViewer, j'ai suivi un tutoriel sur youtube, qui permet de zoomer sans passer par l'évènement par défaut de ce composant, car celui-ci a pour effet de recentrer l'image à chaque changement de zoom, ce qui ne m'arrange pas. J'ai donc crée une classe descendante avec les comportements appropriés que j'ai "pompés" sur cette video.

Afin d'éviter de me lancer dans des recherches impossibles et de m'arracher ce qui me reste de cheveux, je voudrais avoir quelques conseils:

- Mon approche est elle du domaine possible ou existe il des solutions plus appropriées.

- J'utiliserais un paintbox en supperposition car ce que je dessine ne sera pas enregistré (seulement les points dans la bdd), que cela sera souvent redessiné, et que cela me semble plus facile que de recharger l'image à chaque fois. Il n'y a pas de souci de rapidité graphique. Me conseillez vous de redessiner chaque fois le Timage?

- Est il possible de lier de manière dynamique les TSelectionPoint à un controle Edit ainsi qu'à la BDD. C'est à dire qu'en ayant une dizaine de TSelectionPoint affichés à l'écran, les Edit soient remplis avec la valeur X et Y du point sur lequel j'ai cliqué, que l'enregistrement de la BDD correspondant devienne actif en mode Edit pour enregistrer les changements de position. Le nombre de points sera à chaque fois différent donc les liaisons devront être crées programmatiquement, je pense.

Merci d'avance pour vos conseils,
Xavier