Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Вниз

Иконку из 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 вся ветка

Форум: "KOL";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
7-58950
Deus
2003-07-02 14:13
2003.09.18
Как запустить ярлык (.lnk)??


8-58786
ProgrammSoft
2003-05-19 11:10
2003.09.18
Звук


1-58714
паша_ок
2003-09-08 07:43
2003.09.18
Определение имени компонента, на котором кликнули мышкой?


6-58808
leonidus
2003-07-11 11:53
2003.09.18
Отключение щелчков при переходе по ссылкакм в TWebBrowser`е


14-58902
MBo
2003-08-29 08:42
2003.09.18
Intel Processor Code Table





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский