Фикс для ListView, ImgList, Toolbar
Lazarus version: 0.9.23, snapshot 04.09.2007, svn 11933, Win32
Фикс для:
1. автосоздание серого bitmap в TToolButton для состояния Enabled:= False, если не использован набор иконок из свойства "DisabledImages" в Toolbar'е.
2. Перестала подниматься ToolButton при наведении мыши, если кнопка в состоянии Enabled:= False.
3. Не возникает AccessViolation, если убрать ссылку на SmallImages или LargeImages в ListView.
4. Баг ListView, приводящий к зависанию программы при выходе и зависанию IDE. Баг описан в http://www.freepascal.org/mantis/view.php?id=9609
Патч здесь: http://brokenplate.mpt.ru/filestorage/lcl-04.09.2007-svn11933-listviewfix-2.2.rar
Патч открыт для критики. В планах - исправление отсутствия маскирования 4-битных Bitmap в ImageList.
Фикс для ListView, ImgList, Toolbar
Модератор: Модераторы
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
Посмотрел патчи и часть изменений применил:
1. AV при удалении ImageList в ListView
2. Обновление шрифта кнопок ToolBar
3. Перерисовка при смене Enabled и передачи состояния ToolButton в ImageList.Draw
Спасибо. Эти изменения попали в ревизию 11974.
Далее:
1. Мне нужно ваше ФИО для добавления в список contributors
2. С зависанием ListView я поразбираюсь. Ваше решение не кажется оптимальным.
3. По поводу измененного imglist.inc - в таком виде это точно не попадет в svn. ifdef Windows, ifdef Unix и подключение windows, Unix модулей в LCL - вещь недопустимая. Для этих целей есть модули lclintf, win32intf, функции из которых реализованы в каждом интерфейсе (windows, gtk, carbon, ...). Лучше всего использовать возможности LCL, т.е. TCanvas.
4. Отрисовка disabled и highlight состояний запланирована на следующую версию и использованный вами алгоритм может пригодиться.
Пока все.
1. AV при удалении ImageList в ListView
2. Обновление шрифта кнопок ToolBar
3. Перерисовка при смене Enabled и передачи состояния ToolButton в ImageList.Draw
Спасибо. Эти изменения попали в ревизию 11974.
Далее:
1. Мне нужно ваше ФИО для добавления в список contributors
2. С зависанием ListView я поразбираюсь. Ваше решение не кажется оптимальным.
3. По поводу измененного imglist.inc - в таком виде это точно не попадет в svn. ifdef Windows, ifdef Unix и подключение windows, Unix модулей в LCL - вещь недопустимая. Для этих целей есть модули lclintf, win32intf, функции из которых реализованы в каждом интерфейсе (windows, gtk, carbon, ...). Лучше всего использовать возможности LCL, т.е. TCanvas.
4. Отрисовка disabled и highlight состояний запланирована на следующую версию и использованный вами алгоритм может пригодиться.
Пока все.
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
Небольшое дополнение:
Чуть-чуть исправил патч, связанный с отрисовкой серых иконок. Убрал IFDEF MSWINDOWS, IFDEF UNIX в модулях imglist.pp, imglist.inc.
Брать здесь: http://brokenplate.mpt.ru/filestorage/lcl-04.09.2007-svn11933-listviewfix-2.3.rar
Относительно 4-битных картинок: ошибался, всё работает. Проблемы не с картинкой, а с добавлением её в ImageList родным property-editor'ом. Если выравнивание картинки отличается от GlyphAdjustment = gaNone, то по краям картинки вылезают поля цветом TransparentColor.
Предварительный патч (базируется на патче Тома Грегоровича) лежит тут: http://brokenplate.mpt.ru/filestorage/lcl-04.09.2007-svn11933-imglistfix-1.rar
upd: http://brokenplate.mpt.ru/filestorage/lcl-04.09.2007-svn11933-imglistfix-1.1.rar
Большой недостаток моего патча в том, что пришлось вмешаться в класс TBitmap и модули, связанные с API. Поэтому: напоминаю, что патч реализован только для Lazarus 0.9.23, Win32, svn 11933, snapshot 04.09.2007. Для более поздних версий его поведение предсказать не могу!
Патч здесь: http://brokenplate.mpt.ru/filestorage/l ... ix-2.2.rar
Патч открыт для критики. В планах - исправление отсутствия маскирования 4-битных Bitmap в ImageList.
Чуть-чуть исправил патч, связанный с отрисовкой серых иконок. Убрал IFDEF MSWINDOWS, IFDEF UNIX в модулях imglist.pp, imglist.inc.
Брать здесь: http://brokenplate.mpt.ru/filestorage/lcl-04.09.2007-svn11933-listviewfix-2.3.rar
Относительно 4-битных картинок: ошибался, всё работает. Проблемы не с картинкой, а с добавлением её в ImageList родным property-editor'ом. Если выравнивание картинки отличается от GlyphAdjustment = gaNone, то по краям картинки вылезают поля цветом TransparentColor.
Предварительный патч (базируется на патче Тома Грегоровича) лежит тут: http://brokenplate.mpt.ru/filestorage/lcl-04.09.2007-svn11933-imglistfix-1.rar
upd: http://brokenplate.mpt.ru/filestorage/lcl-04.09.2007-svn11933-imglistfix-1.1.rar
Большой недостаток моего патча в том, что пришлось вмешаться в класс TBitmap и модули, связанные с API. Поэтому: напоминаю, что патч реализован только для Lazarus 0.9.23, Win32, svn 11933, snapshot 04.09.2007. Для более поздних версий его поведение предсказать не могу!
