Как смешать значок exe с изображением TMenuItem в TAdvPopupMenu без цвета фона и без артефактов? - PullRequest
0 голосов
/ 13 апреля 2020

Я создаю растровое изображение со следующими свойствами:

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

Затем я загружаю это растровое изображение в макет TImageList:

ilDummy.Clear;
ilDummy.Add(bm, nil);

Это свойства фиктивного списка изображений:

enter image description here

Затем я назначаю изображение этого списка изображений для растрового изображения TMenuItem во всплывающем меню TMS (TAdvPopupMenu):

ilDummy.GetBitmap(0, MyMenuItem.Bitmap);

Это приводит к появлению этого всплывающего меню (где Изображение MenuItem имеет уродливый белый фоновый квадрат):

enter image description here

Так как я могу идеально смешать значок Блокнота в MenuItem без цвета фона и без нежелательных артефактов?

(Существует определенная c ДЕЙСТВИТЕЛЬНАЯ причина, по которой я вынужден использовать свойство Bitmap MenuItem и не могу использовать свойство ImageIndex MenuItem. Но эта причина не является частью этого вопроса).

(причина, по которой я использую этот обходной путь с ImageList и не назначаю каталог битовой карты Свойство Bitmap MenuItem заключается в том, что при этом возникают фоновые артефакты:

enter image description here)

...