Bonjour à toutes et à tous,
Je suis en train de créer un composant d'affichage de courbes (un TChart à ma sauce) à partir d'un TCustomControl.
Une de ses propriétés est un ensemble "TCollection/TCollectionItem" qui me permet de créer autant d'axes que je veux : un horizontal et un ou plusieurs verticaux. A chaque axe vertical correspond une courbe avec ses propres échelles. Tout cela fonctionne très bien.
Mais où est le problème ? J'y viens.
Sur chacun des axes que je peux créer, je souhaite pouvoir afficher diverses icônes. Pour cela j'utilise à nouveau un ensemble "TCollection/TCollectionItem" ; ce dernier étant cette fois une propriété attaché à un axe.
Une des propriétés de ce dernier TCollectionItem est un TBitMap par lequel je peux adjoindre une image. Cette propriété étant publiée, lorsque je clique dessus dans l'inspecteur d'objet, s'ouvre l'éditeur d'image qui me permet de charger celle que je choisis (c'est long).
Là, mon image apparaît bien sur mon composant TCustomControl dans l'EDI, mais rien à l'exécution. Autrement dit, cette image ne s'est pas inscrite dans le fichier "lfm".
Après moult tentatives infructueuses, je me suis aperçu qu'elle s'enregistrait si je modifiais une propriété de l'un des composants ancêtres au dernier ensemble "TCollection/TCollectionItem".
J'ai inclus toute la colonie des Repaint, refresh, invalidate, update, Application.ProcessMessages, ... avant de réenregistrer et réessayer mon composant : rien n'y fait. Seul une modif telle que dite un peu avant, faite dans l'inspecteur d'objet fonctionne. J'ai bien essayé d'inclure dans mon code ce type de modif : ça ne fonctionne pas.
Voilà, je suis à cours d'idées. Si vous en avez, grand merci.
Cordialement.
Pierre
Partager