Я создаю растровое изображение со следующими свойствами:
bm := TBitmap.Create;
bm.PixelFormat := pf32bit;
bm.Canvas.Brush.Color := clWindow;
bm.Transparent := True;
bm.TransparentColor := clWindow;
bm.TransparentMode := tmAuto;
Затем загружаю изображение значка Notepad.exe в это растровое изображение:
![enter image description here](https://i.stack.imgur.com/KIIx4.png)
Затем я загружаю это растровое изображение в макет TImageList
:
ilDummy.Clear;
ilDummy.Add(bm, nil);
Это свойства фиктивного списка изображений:
![enter image description here](https://i.stack.imgur.com/oMlCJ.png)
Затем я назначаю изображение этого списка изображений для растрового изображения TMenuItem
во всплывающем меню TMS
(TAdvPopupMenu
):
ilDummy.GetBitmap(0, MyMenuItem.Bitmap);
Это приводит к появлению этого всплывающего меню (где Изображение MenuItem имеет уродливый белый фоновый квадрат):
![enter image description here](https://i.stack.imgur.com/lRrpU.png)
Так как я могу идеально смешать значок Блокнота в MenuItem без цвета фона и без нежелательных артефактов?
(Существует определенная c ДЕЙСТВИТЕЛЬНАЯ причина, по которой я вынужден использовать свойство Bitmap
MenuItem и не могу использовать свойство ImageIndex
MenuItem. Но эта причина не является частью этого вопроса).
(причина, по которой я использую этот обходной путь с ImageList и не назначаю каталог битовой карты Свойство Bitmap
MenuItem заключается в том, что при этом возникают фоновые артефакты:
)