Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 2731 - 1С 7.7: Регресс отображения объекта дерево+таблица внешней компоненты formex.dll   Make a simular bug
Summary: 1С 7.7: Регресс отображения объекта дерево+таблица внешней компоненты formex.dll
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Общее (show other bugs)
Version: 1.0.9
Hardware: PC All
: P4 minor
Target Milestone: ---
Assignee: Илья Шпигорь
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 571 3214
Blocks: 760 3305
  Show dependency treegraph
 
In work:
Reported: 2008-10-25 18:10 MSD by Антон Азанов (Djelf)
Modified: 2014-09-11 18:32 MSK (History)
7 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments
Скришоты в WinXP, Wine 1.0.8, Wine 1.0.9 (60.73 KB, image/jpeg)
2010-11-18 03:58 MSK, Антон Азанов (Djelf)
Details
Тестовая обработка к 1С 7.7 + formex.dll (238.71 KB, application/zip)
2010-11-18 03:58 MSK, Антон Азанов (Djelf)
Details
SuperGrid (исходники и тестовое приложение) (86.97 KB, application/force-download)
2010-11-18 03:58 MSK, Антон Азанов (Djelf)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Антон Азанов (Djelf) 2008-10-25 18:10:16 MSD
Created attachment 832 [details]
Скришоты в WinXP, Wine 1.0.8, Wine 1.0.9

Ubuntu 7.04, wine@etersoft.sql 1.0.9, 1c 7.70.027, formex.dll 2.0.5.93
Внешняя компонента Formex http://www.dorex.ru/?projects&formex
(очень часто встречается в нестандартных
конфигурациях и внешних обработках к 1С).

На версии wine 1.0.9 объект внешней компоненты formex.dll "Дерево+Таблица" перестал корректно отображаться. На 1.0.7, 1.0.8 отображается корректно.
Comment 1 Антон Азанов (Djelf) 2008-10-25 18:11:22 MSD
Created attachment 833 [details]
Тестовая обработка к 1С 7.7 + formex.dll
Comment 2 Анатолий Лютин 2008-10-27 17:54:29 MSK
Не работает ставка картинки, возможно из-за хака к Компасу.
Comment 3 Антон Азанов (Djelf) 2009-01-27 02:12:38 MSK
Created attachment 1035 [details]
SuperGrid (исходники и тестовое приложение)

Возможно это поможет в решении проблемы.
Исходников formex в публичном доступе нет, однако они входят в состав ВК 1С++ версии 2.0.3.7 (formex и 1c++ в одном флаконе) со свободным доступом к исходникам, исследование последних показало что объект Дерево+Таблица основывается на разработке SuperGrid http://www.codeproject.com/KB/combobox/supergrid.aspx 
В архив SuperGrid входят исходники и скомпилированное независимое приложение. Баг с отрисовкой иконок в 1.0.9 (и 1.0.10) в нем проявляется так же как и в 1C+FormEx.
Comment 4 Илья Шпигорь 2009-02-06 13:17:25 MSK
Выложил патч.

Проблема была в listview контроле, все иконки которого отрисовывал родитель. Во время отрисовки родитель вызывает LISTVIEW_GetItemMetrics, чтобы проверить куда вставлять текст, но listview ничего не знает, о том что было нарисовано не им, и возвращает неверное положение текста. Поэтому и получалась такая каша.

К сожалению эта проблема была и в версии wine 1.0.8. Просто там были хаки, устанавливающие постоянное смещение для текста listview контрола. Запуск SuperGrid сразу выявит это.

Решение заключается в доработке контрола, чтобы он начал реагировать на отрисовку родителя. Там в структуре LVITEM есть поле iIndent, в которое родитель заносит смещение от левого края. Теперь оно обрабатывается корректно и положение текста возвращается LISTVIEW_GetItemMetrics с учетом отрисовки родителя.

Правда, еще возможны некоторые незначительные проблемы с этим контролом. Уж больно он сложный.

Багу надо протестировать на приложении SuperGrid, и повторно проверить #3214 и #571, т.к. в ходе решения пришлось откатить старые хаки. 
Comment 5 Антон Азанов (Djelf) 2009-02-13 17:56:36 MSK
В 1.0.9-40/17 заработало корректно. В 1С тоже. Действительно, сейчас стало даже лучше чем в 1.0.8 
Большое спасибо за исправление.
Comment 6 Антон Азанов (Djelf) 2009-02-13 17:57:43 MSK
Извиня(In reply to comment #5)
> В 1.0.9-40/17
Извиняюсь, 1.0.9-41/17
Comment 7 Денис Баранов 2009-02-13 17:59:32 MSK
eter41\eter17
Принято.
Comment 8 Виталий Перов 2009-06-05 20:11:38 MSD
Возник конфликт с новыми изменениями в pure. откатил патч:

commit d1b35eb3d636223f8d232f54319007dfe9577d54
Author: Ilya Shpigor <shpigor@etersoft.ru>
Date:   Fri Feb 6 11:58:56 2009 +0300

    comctl32: Some changes in listview control for the icons indent correct calculation (eterbug #2731 #571 #3214)


Приложил исправленный, но возможно, что в чём-то ошибся.

Требуется проверить не появилась ли снова бага, а также похожие баги #571 #3214
Comment 9 Илья Шпигорь 2009-06-22 14:42:11 MSD
Необходимость в этом патче отпала - проблема решилась в оригинальном wine. На всякий случай выслал revert.
Comment 10 Vitaly Lipatov 2014-09-11 18:32:55 MSK
Для тех, кто не пользуется багзиллой или не умеет пользоваться групповым редактированием при поиске, закрываем задачи, которые они должны были принять.