Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.18;
Скачать: CL | DM;

Вниз

Иконку из Imagelist в ТKOLMainMenu, без всяких там... штучек.   Найти похожие ветки 

 
Nwm ©   (2003-01-06 10:15) [0]

Хочется вот мне с похмела, чтобы размер моей программы уменьшился ещё на n или даже m байт. :) Для того решил разместить в Меню системные иконки из imagelist"a. Обрадовался, когда увидел там метод LoadSystemIcons. Огорчился, когда увидел какие-то руки, ярлыки и прочую хрень (всего 5 иконок), мне не нужную. Мне нужны листочки, дискетки, ножницы, и т.д.

Изобрёл, скорее всего, велосипед:

procedure TForm3.KOLForm1FormCreate(Sender: PObj);
var
I:PIcon;
H: THandle;
WinDir: Pchar;
begin
getmem (WinDir,255);
getsystemdirectory (WinDir,255);
H:=LoadLibrary (Pchar(WinDir+"\comctl32.dll"));
freemem (windir);
Imagelist1.AddMasked (LoadImage (h,
"#120",IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR),ClSilver);
freelibrary (h);
I:=Newicon;
I.Handle:=Imagelist1.ExtractIcon(5);
Mainmenu1.Items[1].Bitmap:=I.Convert2Bitmap(ClWhite);
I.free;
end;


Получается (мягко говоря) фигня какая-то, господа. Чего они туда полностью не влезают-то? :) Мне нужно полностью! :)
Heeelp. :-)


 
Nwm ©   (2003-01-06 22:28) [1]

Раз никто не отвечает, значит, вопрос поставлен неправильно. 8-)

Тогда так: иконки, содержащиеся в ImageList-e, размером 16х16, "не влезают" в menu.itembitmap [ x ] - получаются "обрезанными".

Ясно, что нужно изменить размер этой менюшной bitmap. Пытался (как в какой-то демке) через OnMessage формы, но у меня почему-то ни WM_MEASUREITEM, ни WM_DRAWITEM "не посылаются".

Читаем:
The WM_MEASUREITEM message is sent to the owner window of an owner-drawn button, combo box, list box, list view control, or menu item when the control or menu is created.

Естесственно, у меня "меню из креатед". :)

Г Д Е К О П А Т Ь ?


 
SPeller ©   (2003-01-08 09:55) [2]

Выхода 2 - либо забыть про рисунки на менюшках, либо написать компоненту, которая будет их туду правильно запихивать.


 
Nwm ©   (2003-01-08 16:22) [3]

Да ну скажешь тоже. :) Будем искать...


 
SPeller ©   (2003-01-09 10:51) [4]


> Nwm © (08.01.03 16:22)
> Да ну скажешь тоже. :) Будем искать...

Если есть время, можешь взять за основу нового объекта стандартные менюшки и изменить их так, чтобы они сами вырисовывали на себе битмапы нужных размеров и в нужном месте. У меня такое в принципе получалось, но возникали проблемы при отрисовке Выделенных Disabled пунктов.


 
Vladimir Kladov   (2003-01-10 07:18) [5]


> Nwm © (08.01.03 16:22)
> Да ну скажешь тоже. :) Будем искать...

А демку смотрели? DemoMenuBitmap.zip на сайте KOL.


 
SPeller ©   (2003-01-10 10:54) [6]


> Vladimir Kladov (10.01.03 07:18)
> А демку смотрели? DemoMenuBitmap.zip на сайте KOL.

Я смотрел, но там во-первых на выделенных пунктах не такие как в стандартных дельфёвых, а во вторых, если поставить менюхе Enabled в False, то рисунок вообще не будет соответствовать.



Страницы: 1 вся ветка

Текущий архив: 2003.09.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
8-58789
Still Swamp
2003-05-20 15:00
2003.09.18
mciSendCommand в в трэде косячит.


6-58809
ALaKO
2003-07-17 11:43
2003.09.18
опять Tembeddewb


7-58953
Сергей Князев
2003-07-03 10:41
2003.09.18
Два модема одновременно


6-58807
DimaS
2003-07-17 13:45
2003.09.18
Как зная название учетной записи, запустить виндовый диалог соед.


8-58785
Still Swamp
2003-05-15 14:46
2003.09.18
Как в трэде воспроизвести несколько MP3