Главная страница
    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.45 MB
Время: 0.009 c
1-58691
AlexTregubov
2003-09-04 15:48
2003.09.18
Администраторские права доступа в Win2k


1-58686
Den 2002
2003-09-04 16:16
2003.09.18
MDI Child question


9-58503
MeF88
2003-03-04 11:46
2003.09.18
Камерный энгайн


8-58787
Stager
2003-05-18 20:04
2003.09.18
Простейшая работа с MP3


3-58549
Blondin
2003-08-27 14:46
2003.09.18
IBХ -виды транзакций





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский