2017-10-12 107 views
0

我使用Delphi 10.2東京,我有一個TFormTImage刷新位圖Firemonkey

我加載PNG文件到MultiResBitmap屬性並設置WrapModeFit

當我運行我的應用程序並單擊按鈕時,我需要更改此圖片並加載JPG文件。

如果文件在硬盤上,我使用Image.Bitmap.LoadFromFile,如果JPG文件來自WebService(從IdHTTP獲取),則使用Image.Bitmap.LoadFromStream。這兩個都在Try...FinallyImage.BeginUpdateImage.EndUpdate;

沒關係我看到我的新圖片,但底部不是很好,我看到了前一張圖片的一部分。我需要將TForm移動到屏幕外,才能看到它已滿。

我在最後嘗試Image.Repaint或清除Bitmap,然後用Image.Bitmap.Clear(TAlphaColors.White)加載新文件,但這沒什麼改變。

有人知道爲什麼嗎?

編輯:我忘了說TransparentColor設置爲白色。

  • 第一:

enter image description here

  • 第二:

enter image description here

  • 移出後ö ˚F屏幕:

enter image description here

+0

你能解釋更多請,這裏正是你被困在,並顯示代碼,請。 – Sami

回答

0

嘗試沒有的BeginUpdate和EndUpdate。

+0

同樣的問題,我忘了說TransparentColor設置爲白色。 首先:https://img15.hostingpics.net/pics/980373871.png 第二:https://img15.hostingpics.net/pics/430373392.png 移出屏幕後:https://img15.hostingpics .net/pics/681634273.png – Bosshoss

+0

您確定已經刪除了所有beginUpdates/Endupdates,即使是從其他組件? – vfbb

+0

啊是的..我有一個TabControl,當我禁用開始/結束更新沒關係,這是奇怪的代碼執行之前,我改變圖像? – Bosshoss

0

只要做到這一點是:

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