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

Вниз

Как повесить иконку на TMenuItem. Никак. Почему-то... Спасите от   Найти похожие ветки 

 
Matolch   (2002-12-11 20:26) [0]

сумасшествия. Может, я чего-то недоглядываю, но не получается.

procedure TMainForm.PopupMenuGetMenuItem;
var W: Word;
Item: TMenuItem;
AnIcon: TIcon;
AnImage: TBitmap;
IconInfo: TIconInfo;
begin
Item := TMenuItem.Create(Self);
with Item do
begin
Caption := FileName;
OnClick := btnOpenDBClick;
PopupMenuFileNames.Items.Add(Item);

W:=0;
AnIcon := TIcon.Create;
AnIcon.Handle := ExtractAssociatedIcon(HInstance,PChar(FileName),W);

if AnIcon.Handle <> 0 then
if GetIconInfo(AnIcon.Handle, IconInfo) then
begin
AnImage := TBitmap.Create;
AnImage.Handle := IconInfo.hbmColor;
if SetMenuItemBitmaps(Item.Handle,Item.Parent.Count-1,MF_BYPOSITION,AnImage.Handle,AnImage.Handle)
then
List.Add(AnImage)
else
Canvas.Draw(20,20,AnImage);//проверил - рисует
AnImage.Free;
end;
end;
AnIcon.Free;
end;

Самый прикол в том, что один раз получилось. Но мне как-то не очень внешний вид понравился (IconInfo.hbmColor only), и я решил попробовать загружать битмап, извлекаемый из иконки, в ImageList. Извлекал, нормально, но в меню - никак, и это никак с тех пор продолжается. SubImages - размер 32*32, менюитем огромен, но рисунок не рисует. Попытался вернуться к первому варианту - и все, баста. Никак.

Вопрос ещё такой - можно было бы извлечь маленькую иконку при помощи ExtractIconEx - я так понял, но где взять тогда имя приложения, из которого её извлечь (по ассоциации с файлом).
И ёще.

Извлек. Получил два битмапа: Color & Mask - как их слить в один, целый, который и выглядит, и смотрится?

И ёще: что значит :о), :)), ;), ИМХО и т.п.?


 
harismatik   (2002-12-11 20:49) [1]

ИМХО - означает с английского "По моему скромному мнению" (сам долгое время не знал, пока случайно на одном из форумов не наткнулся на объяснение :)


 
BeginnerEx   (2002-12-11 20:55) [2]


> harismatik

Понял - In My H.. Opinion. Только что за H.. - z не помню


 
Matolch   (2002-12-11 22:04) [3]

М-да.. Видимо вопрос чрезвычайно... Даже не знаю чего чрезвычайно... Как говорица, спасибо NOBODY. NOBODY всегда поможет.


 
NOBODY   (2002-12-12 14:43) [4]

if GetIconInfo(AnIcon.Handle, IconInfo) then
begin
AnImage := TBitmap.Create;
try
AnImage.Handle := IconInfo.hbmColor;
AnImage.MaskHandle := IconInfo.hbmMask;
AnImage.Transparent := True;
Item.Bitmap := AnImage;
//List.Add???
finally
AnImage.Free;
end;
end;


 
Song   (2002-12-12 16:26) [5]

H - humble


 
Matolch   (2002-12-13 08:57) [6]

Humble. А ведь я как-то наткнулся на загрузку bmp из файла и установку именно SetMenuItemBitmaps. Даже не подумал TMenuItem глядеть. Во.
> NOBODY (12.12.02 14:43)
Кстати, все-равно корявенько получается. Сравнил бы те иконки, что проводник рисует с этим подобием.



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

Форум: "Основная";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-74794
Che
2002-12-11 13:31
2002.12.23
Текст в Delphi!!!! HELP


3-74561
Замученный
2002-12-04 11:23
2002.12.23
IBQ


4-75042
Cosmic
2002-11-09 19:00
2002.12.23
Как поменять скринсейвер?


1-74727
бобёр
2002-12-13 13:25
2002.12.23
Form


1-74672
Bones
2002-12-13 04:01
2002.12.23
Как установить DelphiXD6?





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