2010-05-12 13 views
1

Running Turbo Delphi Pro. J'utilise TImage pour afficher une image PNG. Lorsque je redémarre Delphi et charge le fichier dpr, TImage est toujours là, mais l'image est perdue, nécessitant un rechargement de l'image avant la compilation. Au début, je pensais que c'était un problème de chemin, donc j'ai chargé l'image à partir du même répertoire que le dpr, mais cela n'a pas aidé.TImage perdant l'image chargée

Que puis-je essayer d'autre?

+0

Je ne pensais pas que Turbo Editions avait un support pour PNG Je pensais que cela a été ajouté après les Turbo Editions. –

+0

@Robert Love. Turbo Pro a PNG. Je l'ai essayé avec un JPEG, et il a gardé l'image. – ChuckO

+0

Dans mon D2007, il n'y a pas de prise en charge PNG intégrée (uniquement "graphiques PNG de DevExpress"). Je suppose que ce n'est pas différent dans D2006/Turbo. –

Répondre

1

Essayez ceci:

  • Ouvrez votre projet et votre formulaire avec le PNG.
  • (Re) Charger l'image PNG.
  • Enregistrez et fermez votre formulaire.
  • Avec un éditeur de texte, chargez votre formulaire DFM
  • Je parie que vous ne disposez pas d'un grand binaire votre objet TImage, parce que le contenu PNG n'a pas été enregistré.

La ligne inférieure, vous devez l'inclure en tant que ressource et le charger dynamiquement à l'exécution.

1

J'ai également rencontré ce problème avec D2006. La solution que j'ai utilisée est similaire à celle de François.

J'ai un composant TPngImageCollection que je collectionne toutes les images au moment de la conception. Vous devrez trouver l'unité PngImageList sur le Web. Le composant TPngImageCollection a l'avantage que vous pouvez avoir une collection d'images PNG de différentes tailles.

Lors de l'exécution au démarrage, j'assignez les timages de chacun des membres de la collection:

Image1.Picture.Assign (ImageCollection.Items [0].PNGImage) ; 
Image2.Picture.Assign (ImageCollection.Items [1].PNGImage) ; 
Image3.Picture.Assign (ImageCollection.Items [2].PNGImage) ; 
etc 

Bingo - vous pouvez produire vos originaux PNG avec transparence alpha (j'utilise PhotoPlus 6.0 de Serif - libre et très capable) et les montrer dans un TImage.