Заметил, что:
TToolButton не получают от TToolbar изменения шрифта, в частности ParentFont. ToolBar раccылает ParentFontChanged только по списку FControls, не заглядывая в FWinControls.
Далее: не меняется цвет шрифта при переходе TToolButton в состояние Enabled:= False.
Ещё: лично не оценил, что TToolButton при свойствах Flat:=True и Enabled:=False всё же отжимается при наведении мыши.
И: TImageList не умеет рисовать серые иконки. Т.е. метод
TCustomImageList.Draw(ACanvas,AX,AY AIndex, AEnabled), несмотря на выставленный параметр AEnabled = False, не рисует (в частности) на
TToolButton серый образ иконки.
Пока не оформил всё в удобном виде, разумеется, все исправления с моей стороны в компонентах - спорны и не очень аккуратны. Тем не менее - предлагаю решение, возможно, кому-то это будет интересно.
Все изменения в модулях можно найти поиском по ключевому слову "Browny" - я комментарием указал начало изменения оригинального кода.
Забрать архив измененных модулей отсюда: http://brokenplate.mpt.ru/filestorage/lcl-snapshot08082007-v01.rar
Архив изменённых модулей + diff файлы:
http://brokenplate.mpt.ru/filestorage/lcl-diff-08082007-v01.rar
Буду рад откликам, исправлениям и рекомендациям - уверен, у кого-то есть лучший вариант того ,что я сделал.
P.S. С diff-файлами осторожнее, делал нестандартной утилитой.
TToolButton, TImageList: некоторые проблемы
Модератор: Модераторы
TToolButton, TImageList: некоторые проблемы
Последний раз редактировалось Browny 31.08.2007 17:33:39, всего редактировалось 1 раз.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Извините, если не по теме, Хочу программно нажать кнопку на панели TToolButton, но не получается.
При этом, Form3, при нажатии на пункт меню, форма не показывается/не скрывается, но спокойно поднимается. При нажатии на саму кнопку проблем нет. Стиль кнопки -- tbsCheck. Это нормальное поведение или мой косяк?
Код: Выделить всё
procedure TForm1.ToolButton7Click(Sender: TObject);
begin
if Form1.ToolButton7.Down=True then Form3.Show
else Form3.Hide;
end;
procedure TForm1.MenuItem5Click(Sender: TObject);
begin
Form1.ToolButton7.Click;
end;
При этом, Form3, при нажатии на пункт меню, форма не показывается/не скрывается, но спокойно поднимается. При нажатии на саму кнопку проблем нет. Стиль кнопки -- tbsCheck. Это нормальное поведение или мой косяк?
