![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Имеется:
Delphi 7 и рабочий проект на VirtualTree v.4.8.5 (с кучей своих доработок кода VirtualTrees.pas). Проект в стадии постоянного обновления, версию VT менять в нем смерти подобно (afair, начиная с 4.8.6 изменены параметры в событиях). Требуется (в смысле, хотелось бы): начать новый проект (в принципе, он завязан на действующий, но будет более "глобальным") на Delphi 7, VT v.5.0.0. Оба проекта будут вестись на одной машине. Вопрос: как совместить возможность использования в Design-Time VT 4.8.5 и 5.0.0? (и возможно ли это). При попытке установки v5.0.0 параллельно v4.8.5 Delphi начинает усиленно ругаться (в частности, "Cannot load package 'VirtualTreesD.' It contains unit 'VirtualTreesReg.', which is also contained in package 'bla-bla-bla\VirtualTreesD7D.bpl'" (кто бы сомневался)). Отключение "старого" пакета перед установкой приводит к невозможности работать с фреймами "старого" проекта, а тот ввиду использования Conditional defines систематически нуждается в buildении... P.S. использовать создание vt только в run-time с разными путями к исходникам не предлагать Это сообщение отредактировал(а) kami - 10.11.2010, 01:01 |
|||
|
||||
| RomanEEP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 18.5.2006 Где: Коломна Репутация: 1 Всего: 8 |
Немного не в тему, но интересно: Какого рода изменения внесены VirtualTrees.pas?Это я к тому, что виртуал один из самых гибких компонентов, в котором помимо кучи настроек вставлено очень много виртуальнх методов в актуальных местах.
|
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Навскидку: 1. Изменение процедуры вывода дерева на принтер (позволяющая печатать Header на каждой странице и грамотно разбивающая на эти самые страницы - т.е. в отличие от стандартной процедуры v4.8.5, она не оставит часть строки на одном листе, а часть - на другом; с возможностью выводить всё дерево/от начала до выделения/от выделения до конца/только выделенные строки; печать актуальной ширины дерева (т.е. только от первого до последнего видимого столбца и не более), т.к. стандартная процедура выведет всю канву, даже если она шире, чем занимают видимые столбцы...) 2. В самом начале работы с vt был выявлен баг - если закрыть приложение, когда vt находится в режиме редактирования ячейки, то вылетало AV. Устранено собственными силами (может, устранено и в последующих версиях - не смотрел чейнджлог). 3. Используемые редакторы для vt подстраивались под ширину редактируемой колонки, т.о. если пользователь сокращал ее до минимума (буквально несколько пикселей, чтобы было только видно "+" или "-"), то редактор было уже не видно. Устранено заданием минимальной ширины (в редакторах из VTEditors.pas нет свойства Constraints). Ну, это хоть и не к virtualTrees.pas, но в ту же тему. Из основного всё (а может, и вообще - всё), код дополнялся по мере необходимости, так что строчкой больше - строчкой меньше, кто ж сейчас вспомнит Я так понимаю, что метода безболезненного решения этого вопроса нет... Жаль, конечно, но не особо. Продолжу работать с 4.8.5 и на новом проекте, тем более что его возможностей хватает (наверное, потому что не пользовался нововведениями в более свежих версиях)... Это сообщение отредактировал(а) kami - 10.11.2010, 23:22 |
|||
|
||||
| RomanEEP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 18.5.2006 Где: Коломна Репутация: 1 Всего: 8 |
ИМХО: Все эти изменения могут быть легко сделаны применяя банальное наследование. Делается так: создается свой юнит
для наследника, который объявляется так: TVirtualStringTree = class(VirtualTrees.TVirtualStringTree). Затем в югитах с формами, на которых есть деревья подключается этот юнит после юнита VirtualTrees. Шаг простой, и позволит обновлять компонент без проблем и не геморроиться с 2 версиями. На крайняк если без этих изменений никак нельзя, то sSVN тебе в помощь - можно слить исходники с официального svn, внести правку и отослать diff участнику, кот имеет права коммитить туда. Они реагируют довольно шустро. Или сделать свою ветку svn для своей версии и мерджить изменения из официальной ветки к себе. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |