![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
И вновь TBitBtn - преобразование цветов
Stargazer © (2003-07-04 01:04:00)Везет мне на такие штуки:
Создаю TBitBtn и загружаю для нее битмап из ресурса (BMP 24x24, 24b color), все хорошо, только битмап непрозрачный.
Но лучшее - враг хорошего! Захотелось прозрачности - передаю кнопке тот же битмап, только предварительно загруженный в ImageList. И цвета поехали-и... Такое ощущение, что 24-битный цвет преобразовался даже не 8-битный, а в 16-цветный.
Вот такие пряники.
Куда рыть? Это Windows виновата или где?
P.S. Скомпильнул на Delphi - то ж самое.
Кладов (2003-07-16 16:38:00) [1]Упразднять ничего не надо, а добавить новый контрол можно. Или, еще лучше, еще одно свойство для TKOLButton (MCK) / TControl (KOL). Насчет иконки надо смотреть.
Dimaxx (2003-07-14 01:21:00) [2]Кстати, надо бы в KOL упразднить старый TBitBtn и ввести новый на основе обычной кнопки, тока со стилем BS_BITMAP или BS_ICON. А то в ХР при включенных стилях эта BitBtn смотрится как валенок на африканском побережье. Я пробовал со стандартным батоном - все засылается. НО!!!!
var ico: Hicon;
BB: PControl; // Кнопка
Bbh: Hwnd;
begin
BB.Style:=bs_icon or ws_visible or ws_child;
Bbh:=BB.GetWindowHandle;
ico:=LoadIcon(hinstance,PChar('test'));
sendMessage(Bbh,bm_setimage,2,ico);
form.Invalidate;
end;
Этот код грузит иконку из ресурса и шлет на кнопку. Но если загрузить иконку в PIcon, а затем послать ее хэндл на кнопку, то иконка не выводится, как не кувыркайся!!!!!! И не говорите мне, что какая разница - нифига не выходит!
Vladimir Kladov (2003-07-04 17:47:00) [3]В imagelist есть свойство, которое управляет цветностью, попробуйте до добавления картинки установить его в нужное значение. А вообще, если картинка содержит действительно мало цветов, ну и сохранить ее заранее в графическом редакторе именно в том формате, который оптимален по размеру. pf4bit - это 16 любых</> цветов.