Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1211742484
Заинтересованный
2008-05-25 23:08
2008.07.13
Стоимость разработки пакета, аналогичного SynEdit


15-1212341902
Kostafey
2008-06-01 21:38
2008.07.13
С днем рождения ! 1 июня


15-1211914217
Nic
2008-05-27 22:50
2008.07.13
Выбор ноутбука Часть 2


4-1192946133
SKIPtr
2007-10-21 09:55
2008.07.13
Какую функцию лучше использовать


2-1213115734
deras
2008-06-10 20:35
2008.07.13
Подскажите идею решения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский