Серые иконки в TToolbar

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Серые иконки в TToolbar

Сообщение Ichthyander » 14.12.2007 13:57:56

Скажите, а отрисовка серых иконок при свойстве Enabled = False компонента TAction, насколько я понял, в версии 0.9.24 так и не реализована?
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 686
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Сообщение alexs » 14.12.2007 15:55:00

В последних версиях из svn в ImageList реализована отрисовка иконок с Enabled = False, возможно это уже было в 9.24
но вопрос в том что на самом деле изображегние не становится полностью серым - просто приглушаются чут цвета.
Я из-за этого не могу нормально тень нарисовать в RxToolPanel у кнопки
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Серые иконки в TToolbar

Сообщение Ichthyander » 14.12.2007 18:20:44

У меня версия 9.24.
Кстати, я и тулбар Rx поставил, мне он больше понравился. Правда и в нем у меня тоже не получаются серые кнопки... :(
Наверное надо будет снапшоты скачать...
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 686
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Сообщение alexs » 14.12.2007 21:03:13

Чисто серые и не получиш - так уж устроен ImageList. В принципе можно конечно ввести ссылку на 3-й ImageList, содержащий изображения для задисабленных кнопок. Но нужно ли?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Павел Ишенин » 15.12.2007 11:37:15

1. Серые иконки в ImageList - это новое в lazarus 0.9.25 Также есть и другие состояния - смотрите ImageList из examples
2.
вопрос в том что на самом деле изображегние не становится полностью серым - просто приглушаются чут цвета
Это так где? В windows все серое. Цвета приглушаются для состояния Down
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Сообщение Ichthyander » 15.12.2007 16:10:29

alexs
Так цвет не меняется вообще: не приглушаются и не исчезают (хотя может настолько слабо приглушаются, что я не вижу).
В вашем тулбаре только два свойства типа TImageList: ImageList и ImageListSelected, а для дизаабленных кнопок нет :(. Может я что-то кардинально не понимаю...
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 686
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Сообщение alexs » 15.12.2007 18:18:56

В коде из модуля imglist.pp:
Код: Выделить всё
procedure TCustomImageList.Draw(ACanvas: TCanvas; AX, AY, AIndex: Integer;
  AEnabled: Boolean);
const
  EffectMap: array[Boolean] of TGraphicsDrawEffect =
  (
    gdeDisabled,
    gdeNormal
  );
begin
  Draw(ACanvas, AX, AY, AIndex, EffectMap[AEnabled]);
end;

Вот именно gdeDisabled - он просто приглушает цвет - серым изображение не будет.

Ichthyander
Скачай последню версию 9.25 - посмотри.
Я вызываю выше приведённую функцию с AEnabled = false - вот она так работает :(.
А вот как добиться полностью серго изображения - я не знаю.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Павел Ишенин » 15.12.2007 21:51:48

хмм... gdeDisabled делает компоненты красного, синего и зеленого равными => цвет серый :) Хотя, если это windows xp (vista) + manifest, то используются способности системного imagelist для этой цели. Может проблема как раз на таком приложении?
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 47

Рейтинг@Mail.ru
cron