| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Иконка из .exe в ToolButton |
| Автор: Romero 12.3.2006, 14:53 |
| Есть ToolButton и некий исполняемый файл "app.exe". Нужно в рантайме задать основную иконку "app.exe" в качестве изображения на кнопку. |
| Автор: Snowy 13.3.2006, 12:17 | ||
| Вот. Накидал пример. На форму бросить TToolBar и сделать в нем несколько кнопок. Для примера иконки берутся из shell32.dll. Но можно из любого другого dll или exe.
Добавлено @ 12:17 Для одной кнопки не получится - нужно иконку в TImageList добавлять. Комменты нужны? |
| Автор: SlaUr 13.3.2006, 16:06 | ||
Вот может поможет кусок из моей программы - иконка отображается на картинке и на кнопке
|
| Автор: Snowy 13.3.2006, 16:20 | ||
|
| Автор: Romero 15.3.2006, 06:52 |
| Snowy, этот вариант я уже испробовал. Не могу только понять, почему цветность иконки меняется... Например, если взять иконку IEXPLORE.EXE или значок открытой/закрытой папки из того же shell32.dll и поместить на кнопке светлого цвета, то изображение получится с неровными черными краями. Пример SlaUr еще не пробовал. Как то можно пример Snowy исправить? Или это только у меня беда такая? |
| Автор: Romero 15.3.2006, 07:39 |
| Скорее всего, проблема возникает из-за цветовой схемы ХР в иконках, так как если извлечь из IEXPLORE.EXE одну иконку и оставить в ней только 256-цветную, то отображается такая картинка на кнопке (при добавлении в ImageList) нормально. Можно ли как-то указать, чтобы подгружалось именно 256-цветное изображение? |
| Автор: Snowy 15.3.2006, 10:34 | ||
| И правда бага какая-то с иконками. Скорректировал на bmp. Так нормально:
Размеры сделал 32х32. Исправь на нужные тебе. |
| Автор: Romero 15.3.2006, 13:58 |
| Супер! Работает на ура, спасибо огромное! |
| Автор: Quadr0 15.3.2006, 15:29 |
| ... |
| Автор: Snowy 15.3.2006, 16:53 |
| Quadr0, это не помогает. Поэтому и законвертил в битмап. |
| Автор: Quadr0 16.3.2006, 22:38 |
| ... |
| Автор: Eva_Adamova 14.5.2007, 23:47 | ||
| Сделала Тулбар, положила на него 5 кнопок, код Snowy не работает! Ошибка на строке
Что я делаю не так??? |
| Автор: Snowy 15.5.2007, 13:05 |
| Какая ошибка? Что написано? Если код не менялся, то эта строка просто не способна вызвать ошибку. Добавлено через 5 минут и 40 секунд Ух ты! Сам не верю, но я понял, в чём глюка! Если угадал, считайте меня телепатом Eva_Adamova, а как вы клали кнопки на тулбар? Случайно не с палитры набросали? Напимер TSpeedButton... Код написан для кнопок тулбара (TToolButton), а не каких-либо других. А кнопки на тулбаре не набрасываются, а создаются путём нажатия правой кнопки на тулбаре и выбора "New Button". Любые другие кнопки будут вызывать ошибку, т.к. это кнопки совсем другого класса. |