Question

Dans Delphi 2007, les images sont chargées dans un TImageList au moment de la conception. Cela introduit le problème suivant:

  • J'ai un dossier contenant les graphiques que j'utilise dans mon application
  • Chaque fois que je veux changer, disons, l'icône de "sauvegarde", je dois
    1. Modifiez le graphique dans le dossier (à mes propres fins)
    2. Parcourez toutes les listes TImageLists de l'application
    3. Changer le graphique dans la TImageList

Existe-t-il un moyen (composant, script de compilation, ...) d’exécuter les étapes 2 et 3 automatiquement, c’est-à-dire de ne spécifier que les chemins des graphiques au moment de la conception, en créant une dépendance pour les fichiers graphiques réels?

Était-ce utile?

La solution

Vous pouvez créer un descendant de TImageList et ajouter ce type de logique ici.

Etant donné que les composants faisant référence à des images à l'intérieur d'une TImageList le font par index, il serait plus simple de demander à votre descendant d'avoir une propriété ImagePaths de type TStrings qui est formatée comme suit:

#=Filename

Et peut-être ajouter une propriété BasePath de type chaîne également.

Ensuite, lors du chargement de ce composant, il pourrait recharger automatiquement ces images en mémoire.

Vous pouvez même en faire un expert en conception qui charge les images dans le concepteur.

- jeroen

Autres conseils

Les classes ne sont jamais complètement compiletées. Les classes Designtime sont également diffusées à partir de ressources.

Je charge les images dans TImagelist au moment de l'exécution. Pour cette raison même, je n’assigne aucune image au moment de la conception. Ils sont tous ajoutés en tant que ressource à l'exe et je les charge à l'exécution à partir de là. Cela signifie également que les images peuvent être modifiées sans recompiler le fichier exe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top