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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавить передачу параметра во всех вызовах ф-ции, Средствами IDE 
:(
    Опции темы
кмс
Дата 23.4.2013, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте.
Возник такой вопрос.
Есть большая программа, в ней одна функция изначально было с одним входным параметром.
Теперь мне нужно добавить еще один параметр, естественно теперь нужно менять все обращения к этой функции, а их очень много.
Может как то возможно облегчить работу с помощью самой Delphi?
Например, при компиляции Delphi выдает ошибку и ставит курсор как раз в то место куда нужно вставить параметр.
Отсюда и возник вопрос, раз она точно знает где ошибка, может и сама может вставить нужное smile

Если вопрос совсем глупый, то сразу извиняюсь smile

PS: Delphi XE

PM MAIL   Вверх
DarkProg
Дата 23.4.2013, 21:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: 4
Всего: 19



Есть следующие решения, на мой взгляд:
1) Если параметр передавать не обязательно, и в большинстве случаев у вас должно передаваться, например, True, то можно задать дефолтовое значение, а там где нужно поставить нужное значение руками.
2) Используя скажем Notepad++ пробежаться по всему проекту(а именно по pas-файлам) и найти вызовы этой функции, и поправить, в принципе вполне шустрый вариант(если набор переменных стандартизирован и вызовы схожи, можно сделать замену по файлам, я так за пару часов 200 файлом модифицировал недавно, надо было почистить uses, а потом прописать новые unit'ы).
3) Попробуйте посмотреть умеет ли делать такое рефакторинг, но из того что я пробовал с изменением параметров, я потом очень долго матюкался, потому что становилось только хуже.

P.S. чисто гипотетически, делфи сразу знает все места где эта ошибка обитает, но почему-то в списке ошибок сразу валится ещё и предупреждения и прочее и порой больше 10 ошибок в той куче за раз не найти и приходится шаманить, вот как описал выше.


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
Akella
Дата 23.4.2013, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



http://www.webdelphi.ru/2011/05/osnovy-ref...ga-v-delphi-xe/

посмотри там "Rename – переименование"

Добавлено через 36 секунд
там ещё есть "Change Params – изменение списка параметров"
PM MAIL   Вверх
superVad
Дата 23.4.2013, 22:49 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



 smile название темы - в точку
PM MAIL   Вверх
Akella
Дата 24.4.2013, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



да, за такое наказывать нужно smile 
PM MAIL   Вверх
кмс
Дата 24.4.2013, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Пока выкрутился заменой в Notepad++, но не всегда такое прокатит smile
Akella за ссылку спасибо.

Просто тему создал поздно ночью, когда уже в край достало в ручную все редактировать smile

Название темы теперь не могу поправить smile Может кто из модераторов исправит smile

Это сообщение отредактировал(а) кмс - 24.4.2013, 12:46
PM MAIL   Вверх
northener
Дата 24.4.2013, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 12
Всего: 20



Цитата(кмс @  24.4.2013,  12:45 Найти цитируемый пост)
Пока выкрутился заменой в Notepad++

А чем Find in Files в самой IDE не устроил?
А CnPack имеет ещё и функцию Replace in Files. 


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
кмс
Дата 24.4.2013, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



northener,  ну да, одно и тоже, просто нотепадом давно пользуюсь и как то привычней smile
А CnPack'ом стараюсь не делать никаких глобальных изменений после того как он накосячил при очистке не используемых модулей.
Может и сам что то не так сделал, но все равно побаиваюсь smile

PS: изначально вопрос был вообщето чуть другим, то есть на счет расширенных возможностей тех же Find in Files и Replace.
Вот и подумалось что это касается самого IDE, собсно по этому тему так и назвал.


Это сообщение отредактировал(а) кмс - 24.4.2013, 18:08
PM MAIL   Вверх
Beltar
Дата 24.4.2013, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 0
Всего: 7



Цитата

Например, при компиляции Delphi выдает ошибку и ставит курсор как раз в то место куда нужно вставить параметр.


А она может так НЕ сделать??  smile Что касается всех мест вызова, то у меня есть сомнения, что даже супер-пупер VS 2012 умеет настолько предсказывать мысли, чтобы автоматически подставить нужные фактические параметры.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
кмс
Дата 24.4.2013, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Beltar @  24.4.2013,  18:21 Найти цитируемый пост)
Например, при компиляции Delphi выдает ошибку и ставит курсор как раз в то место куда нужно вставить параметр.

Ну это я говорил не насчет угадывание мыслей smile
Имел ввиду раз дельфи точно знает где ошибка, то не плохо было бы туда вставлять что ей укажут.
Уже понял что нельзя.
PM MAIL   Вверх
superVad
Дата 24.4.2013, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



Я FAR с каким то плагином юзал - когда с RX на JVCL переходил.
PM MAIL   Вверх
Beltar
Дата 24.4.2013, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 0
Всего: 7



Компоненты с одного на другой заменить? Такое GEExperts могет.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Poseidon
Дата 24.4.2013, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Вообще, озвученное DarkProg использование дефолтового значения в подавляющем большинстве решит проблему без перелопачивания pas файлов проекта.


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
northener
Дата 25.4.2013, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 12
Всего: 20



Цитата(Poseidon @  24.4.2013,  23:29 Найти цитируемый пост)
Вообще, озвученное DarkProg использование дефолтового значения в подавляющем большинстве решит проблему без перелопачивания pas файлов проекта.

Ну насчёт подавляющего большинства я бы поостерегся так утверждать. Случай описанный автором достаточно редкий для большого и давнего проекта.



--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
кмс
Дата 25.4.2013, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Так мне как раз и нужно было передавать параметр и в разных случаях разный, для того я и добавлял его в функцию.
Параметр типа integer и вариантов там хоть и не 2147483647 но все равно по дефолту ни как бы  не прокатило.

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.0843 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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