Форум: "Прочее";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];
ВнизЗамена множества компонент в проекте Найти похожие ветки
← →
версия для печати (2008-05-27 11:46) [0]Есть большой проект, в нем сотни форм.
Нужно заменить стандартные компоненты, находящиеся на формах, на сторонние(например, TButton на TAdvButton) с сохранением базовых свойств - размера, положения итп.
Подскажите, есть ли для таких операций какие-либо инструменты, либо придется лопатить вручную, чего, естественно, не хотелось бы?
← →
версия для печати (2008-05-27 11:47) [1]кстати, продвинутые компоненты могут и не быть наследниками базовых
← →
версия для печати (2008-05-27 11:49) [2]не туда запостил, извиняюсь
перенесите пожалуйста топик в подходящий раздел
← →
Sergey13 © (2008-05-27 11:56) [3]Есть такой GExpert - бесплатный набор экспертов - там это возможно.
← →
BoxTer (2008-05-27 12:03) [4]Хм, я делал б так (тупо, но просто и быстро):
1. В фаре нашел все файлы *.dfm, *.pas содержащие текст TButton
2. Заменил через ctrl+f7 TButton на TAdvButton
← →
версия для печати (2008-05-27 12:55) [5]
> BoxTer (27.05.08 12:03) [4]
есть еще проблема с секцией uses
← →
BoxTer (2008-05-28 09:43) [6]Ну дык в секции юзес юнит зовут Buttons, а не TButton.
В крайнем случае, сюда можно приплести доп. символы, например запятая и точка с запятой. В секции Юзес после Buttons стоит запятая, а в разделе объявления после TButton стоит точка с запятой. Вот и менять TButton; на TAdvButton; :)
← →
KSergey © (2008-05-28 11:04) [7]> версия для печати (27.05.08 12:55) [5]
> есть еще проблема с секцией uses
Какая?
← →
KSergey © (2008-05-28 11:07) [8]Если имена этих самых основных свойств у разных компонент совпадают - то достаточно просто провести контекстную замену, ка ки было сказано выше. В том числе и дял секции uses (хотя, скорее, там необходимо будет добавить, однако тут попробовать надо; в любом случае добавить - дас гарантированно положительный с точки зрения отсутствия проблем результат).
И спокойно открывать в дельфи, лишние свойства повторно в dfm уже не запишутся, новые - придется донастроить.
Это проверенная технология.
← →
{RASkov} © (2008-05-28 11:09) [9]> [7] KSergey © (28.05.08 11:04)
> > версия для печати (27.05.08 12:55) [5]
> > есть еще проблема с секцией uses
>
> Какая?
"Новый" компонент описан в "новом"("неизвестном") модуле, который тоже нужно добавить в юзес, а при необходимости убрать "старый"...
← →
{RASkov} © (2008-05-28 11:12) [10]В прочем.... делфи сама потом может наверное понадобавлять недостающих модулей в раздел uses..... но вот удалить не сможет ;)
← →
Ослик (2008-05-28 11:17) [11][9] {RASkov} © (28.05.08 11:09)
Что значит "("неизвестном") модуле"?
Ты незнаешь что делаешь?
← →
Vlad Oshin © (2008-05-28 11:19) [12]это надо по-хорошему не так делать
Надо создавать компонент, используя описания dfm, создавать его заменитель, пробегать по их cв-вам и методам и при совпадении их наличия принимать решение о возможности замены
← →
Vlad Oshin © (2008-05-28 11:19) [13]это надо по-хорошему не так делать
Надо создавать компонент, используя описания dfm, создавать его заменитель, пробегать по их cв-вам и методам и при совпадении их наличия принимать решение о возможности замены
← →
Vlad Oshin © (2008-05-28 11:19) [14]это надо по-хорошему не так делать
Надо создавать компонент, используя описания dfm, создавать его заменитель, пробегать по их cв-вам и методам и при совпадении их наличия принимать решение о возможности замены
← →
_mirage_ (2008-05-28 11:20) [15]find, sed, awk…
---
Understanding is not required. Only obedience.
← →
{RASkov} © (2008-05-28 11:30) [16]> [11] Ослик (28.05.08 11:17)
> [9] {RASkov} © (28.05.08 11:09)
> Что значит "("неизвестном") модуле"?
> Ты незнаешь что делаешь?
Я точно не помню и много не знаю в каких модулях находятся конкретные классы...
Но я знаю что я делаю, я меняю один класс на другой, а где он другой описан, в каком модуле - не знаю(помню)...)
Я же не зря в кавычки взял, а? ...или зря, не дошло(
:о)
← →
KSergey © (2008-05-28 12:26) [17]> {RASkov} © (28.05.08 11:30) [16]
> Я точно не помню и много не знаю в каких модулях находятся
> конкретные классы...
Ну так взять на бумажку да и выписать. Неужто вы собираетесь заменять более двух-трех десятков классов??
К стати, мысль по поводу того, что дельфи сама допишет что надо - вполне здравая. Вроде и в самом деле так произойдет.
К стати, неужили вы это до сих пор еще не попробовали?? Хотя бы на одной форме??
← →
версия для печати (2008-05-29 00:00) [18]
> Sergey13 © (27.05.08 11:56) [3]
> Есть такой GExpert - бесплатный набор экспертов - там это
> возможно.
Спасибо за GExpert, есть полезные фичи. Попробовал и Component Replace. Он годится только для простых случаев. С фреймами беда - рушит среду. И с пакетами не особо дружит.
К тому же оказалось, что важные свойства некоторых новых компонент существенно отличаются от свойств старых - разные имена и даже иерархия. Похоже, ручной работы избежать не удастся(((
Всем спасибо за помощь
← →
{RASkov} © (2008-05-29 00:56) [19]> [17] KSergey © (28.05.08 12:26)
Это ко мне все вопросы?) Я не буду на них отвечать ;) ...на бумажку еще чего-то выписывать
:о)
Все что хотел сказать в этой ветке, я уже сказал)
← →
KSergey © (2008-05-29 09:33) [20]> {RASkov} © (29.05.08 00:56) [19]
> Это ко мне все вопросы?)
Посмотрел - чета я не оттуда копипастнул, вопросы к автору, понятно :)
> {RASkov} © (29.05.08 00:56) [19]
> Я не буду на них отвечать ;) ..
Разрешаю.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.007 c