2017-10-12 10 views
0

J'utilise Delphi 10.2 Tokyo, et j'ai un TForm avec un TImage.Actualiser Bitmap Firemonkey

Je charge un fichier PNG à la propriété MultiResBitmap et définis WrapMode à Fit.

Lorsque j'exécute mon application et cliquez sur un bouton, j'ai besoin de changer cette image et de charger un fichier JPG.

J'utilise Image.Bitmap.LoadFromFile si le fichier est sur le disque dur ou Image.Bitmap.LoadFromStream si le fichier JPG provient d'un WebService (Get from IdHTTP). Les deux sont sur un Try...Finally avec Image.BeginUpdate et Image.EndUpdate;

C'est ok je vois ma nouvelle image mais le fond n'est pas vraiment bon, je vois une partie de l'image précédente. Je dois déplacer le TForm en dehors de mon écran pour le voir plein.

J'essaye Image.Repaint à la fin ou Effacer le Bitmap avant de charger le nouveau fichier avec Image.Bitmap.Clear(TAlphaColors.White) mais cela ne change rien.

Quelqu'un sait pourquoi?

Modifier: J'ai oublié de dire que TransparentColor est défini sur Blanc.

  • Première:

enter image description here

  • Deuxième:

enter image description here

  • après avoir déménagé o écran f:

enter image description here

+0

Pouvez-vous expliquer plus s'il vous plaît, où vous exactement coincé dans et montrer le code s'il vous plaît. – Sami

Répondre

0

Essayez sans BeginUpdate et EndUpdate.

+0

Même problème, j'ai oublié de dire que TransparentColor est réglé sur Blanc. Premier: https://img15.hostingpics.net/pics/980373871.png Deuxième: https://img15.hostingpics.net/pics/430373392.png Après avoir quitté l'écran: https: //img15.hostingpics .net/pics/681634273.png – Bosshoss

+0

Vous êtes sûr d'avoir supprimé toutes les commandes beginUpdates/Endupdates, même d'autres composants? – vfbb

+0

ah oui .. J'ai un TabControl et quand je désactive Begin/EndUpdate c'est ok, c'est étrange ce code exécuté juste avant de changer l'image ?? – Bosshoss

0

Il suffit de le faire comme:

Image1.MultiResBitmap[0].Bitmap.LoadFromFile('Location\Image.jpg');