![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Hicon ---> HBitmap
_Ed_ © (2002-12-06 18:07:00)Уважаемые мастера! Подскажите как преобразовать иконку в битмап.
контекст задачи: на кнопке TKOLBitBtnотобразить содержимое TKOLIcon.
Попытался использовать DrawIcon, но у битмапа не обнаружил канвы...
Если можно положите примерчик...
Заранее благодарен, Сердюк Э.С.
_Ed_ (2002-12-07 03:08:00) [1]сорри! насчёт одной строки я погарячился, но и так сойдёт! :)
_Ed_ (2002-12-07 03:06:00) [2]Огромное спасибо Gandalf за пример. Однако используя его получаем почему-то чёрно-белую иконку...
Однако, пытаясь разобраться в этом я нашёл более красивое решение, тем более что BitBtn я создаю run-time (и не один).
Надеюсь оно кому-то ещё поможет:
...
ico := NewIcon;
ico.Handle := ExtractAssociatedIcon(HInstance, {например так}
PChar(ParamStr(0)), i);
Btns[j] := NewBitBtn(Form,"NewBitBtn",[bboNoBorder,bboFixed],
glyphLeft, ico. Convert2Bitmap(clBtnFace), 0);
ico.Free;
...
И всё! Никаких лишних телодвижений! (:-)))
При желании можно вообще без IconCreate обойтись и всё в одну строку записать!
Gandalf (2002-12-06 22:47:00) [3]
> Уважаемые мастера! Подскажите как преобразовать иконку в
> битмап.
> контекст задачи: на кнопке TKOLBitBtn отобразить содержимое
> TKOLIcon
Думаю этого хватит(тут и преобразование и отрисовка - хотя может ты и не это хотел)...
var
i:PIcon;
b:PBitmap;
tmp:HDC;
begin
i:=Newicon;
i.LoadFromFile("Icon530.ico");
b:=NewBitmap(32,32);
i.Draw(b.canvas.handle,0,0); // Говоришь нет канвы ?
tmp:=GetDC(BitBtn1.Handle);
b.Draw(tmp,0,0);
ReleaseDC(BitBtn1.Handle,tmp);
b.free;
i.free;
end;
> Hicon ---> HBitmap
Ходишь на грани offtopic - такие вопросы в WinAPI (ну может еще в Media или Игры(Алгоритмы) - хотя думаю модератор обидится)!