Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использовать 2 версии VirtualTreeView, Как совместить? 
:(
    Опции темы
kami
Дата 10.11.2010, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 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 с разными путями к исходникам не предлагать smile

Это сообщение отредактировал(а) kami - 10.11.2010, 01:01
PM MAIL WWW   Вверх
RomanEEP
Дата 10.11.2010, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 18.5.2006
Где: Коломна

Репутация: 1
Всего: 8



Немного не в тему, но интересно: Какого рода изменения внесены VirtualTrees.pas?Это я к тому, что виртуал один из самых гибких компонентов, в котором помимо кучи настроек вставлено очень много виртуальнх методов в актуальных местах.
PM MAIL   Вверх
kami
Дата 10.11.2010, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Цитата(RomanEEP @  10.11.2010,  22:00 Найти цитируемый пост)
 Какого рода изменения внесены VirtualTrees.pas

Навскидку:
1. Изменение процедуры вывода дерева на принтер (позволяющая печатать Header на каждой странице и грамотно разбивающая на эти самые страницы - т.е. в отличие от стандартной процедуры v4.8.5, она не оставит часть строки на одном листе, а часть - на другом; с возможностью выводить всё дерево/от начала до выделения/от выделения до конца/только выделенные строки; печать актуальной ширины дерева (т.е. только от первого до последнего видимого столбца и не более), т.к. стандартная процедура выведет всю канву, даже если она шире, чем занимают видимые столбцы...)
2. В самом начале работы с vt был выявлен баг - если закрыть приложение, когда vt находится в режиме редактирования ячейки, то вылетало AV. Устранено собственными силами (может, устранено и в последующих версиях - не смотрел чейнджлог).
3. Используемые редакторы для vt подстраивались под ширину редактируемой колонки, т.о. если пользователь сокращал ее до минимума (буквально несколько пикселей, чтобы было только видно "+" или "-"), то редактор было уже не видно. Устранено заданием минимальной ширины (в редакторах из VTEditors.pas нет свойства Constraints). Ну, это хоть и не к virtualTrees.pas, но в ту же тему.

Из основного всё (а может, и вообще - всё), код дополнялся по мере необходимости, так что строчкой больше - строчкой меньше, кто ж сейчас вспомнит smile

Я так понимаю, что метода безболезненного решения этого вопроса нет... Жаль, конечно, но не особо. Продолжу работать с 4.8.5 и на новом проекте, тем более что его возможностей хватает (наверное, потому что не пользовался нововведениями в более свежих версиях)...

Это сообщение отредактировал(а) kami - 10.11.2010, 23:22
PM MAIL WWW   Вверх
RomanEEP
Дата 11.11.2010, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 18.5.2006
Где: Коломна

Репутация: 1
Всего: 8



ИМХО: Все эти изменения могут быть легко сделаны применяя банальное наследование. Делается так: создается свой юнит
для наследника, который объявляется так: TVirtualStringTree = class(VirtualTrees.TVirtualStringTree). Затем в югитах с формами, на которых есть деревья подключается этот  юнит после юнита VirtualTrees. Шаг простой, и позволит обновлять компонент без проблем и не геморроиться с 2 версиями.
На крайняк если без этих изменений никак нельзя, то sSVN тебе в помощь - можно слить исходники с официального svn, внести правку и отослать diff участнику, кот имеет права коммитить туда. Они реагируют довольно шустро. Или сделать свою ветку svn для своей версии и мерджить изменения из официальной ветки к себе.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.