Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.13;
Скачать: CL | DM;

Вниз

Замена множества компонент в проекте   Найти похожие ветки 

 
версия для печати   (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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.017 c
15-1211816666
Tualatin
2008-05-26 19:44
2008.07.13
файл ресурса (где картинки jpg)


2-1213535300
NieL
2008-06-15 17:08
2008.07.13
Скорость работы алгоритма


15-1211877821
Хохол
2008-05-27 12:43
2008.07.13
Как получить размер памяти занимаемый объектом?


3-1202138898
tomkat
2008-02-04 18:28
2008.07.13
критичный размер базы под FB


2-1213401503
ply
2008-06-14 03:58
2008.07.13
загрузка преобразование изображений