2017-10-12 2 views
0

Ich benutze Delphi 10.2 Tokyo, und ich habe eine TForm mit einer TImage.Refresh Bitmap Firemonkey

Ich lade eine PNG Datei zu MultiResBitmap Eigenschaft und setzen WrapMode zu Fit. Wenn ich meine Anwendung starte und auf eine Schaltfläche klicke, muss ich dieses Bild ändern und eine JPG Datei laden.

Ich verwende Image.Bitmap.LoadFromFile, wenn die Datei auf der Festplatte oder Image.Bitmap.LoadFromStream ist, wenn die JPG-Datei von einem WebService stammt (Get von IdHTTP). Beide sind auf einem Try...Finally mit Image.BeginUpdate und Image.EndUpdate;

Das ist in Ordnung, ich mein neues Bild sehen, aber der Boden ist nicht wirklich gut, ich sehe einen Teil des vorherigen Bildes. Ich muss das TForm außerhalb meines Bildschirms verschieben, um es voll zu sehen.

Ich versuche Image.Repaint am Ende oder löschen Sie die Bitmap vor dem Laden der neuen Datei mit Image.Bitmap.Clear(TAlphaColors.White), aber das ändert nichts.

Jemand weiß warum?

Edit: Ich habe vergessen zu sagen, dass TransparentColor auf Weiß eingestellt ist.

  • Erstens:

enter image description here

  • Zweitens:

enter image description here

  • Nach dem Umzug aus o f Bildschirm:

enter image description here

+0

Können Sie bitte erklären, wo genau Sie stecken in, und zeigen Sie den Code bitte. – Sami

Antwort

0

Versuchen ohne Beginupdate und EndUpdate.

+0

Gleiches Problem, ich habe vergessen zu sagen, dass TransparentColor auf Weiß eingestellt ist. Zuerst: https://img15.hostingpics.net/pics/980373871.png Zweitens: https://img15.hostingpics.net/pics/430373392.png Nach dem Verschieben des Bildschirms: https: //img15.hostingpics .net/pics/681634273.png – Bosshoss

+0

Sie haben sicher alle beginUpdates/EndUpdates entfernt, auch von anderen Komponenten? – vfbb

+0

ah ja .. Ich habe ein TabControl und wenn ich Begin/EndUpdate deaktivieren ist das ok, das ist komisch, dass dieser Code ausgeführt wird, bevor ich das Bild ändere? – Bosshoss

0

tun Sie es einfach wie:

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