|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Добрый день! Мучаюсь с переводом большого проекта с Delphi 2007 на Delphi XE8. Проект сейчас уже нормально компилируется на XE8 - но только в том случае если не открывать его модули в редакторе Delphi. Если же открыть какой-либо модуль в Delphi - он тут же в секцию USES добавляет свои модули - которых по его мнению для данной формы не хватает. Почему добавляет - я так понимаю, потому что у меня в секции USES перебор с разными IFDEF, IFNDEF и т. д. и Delphi путается, добавляет модули, которые не нужны, а потом проект не компилируется - ругается, что повторное использование модуля в секции USES. Возникает вопрос - как запретить Delphi что-то автоматически вставлять в секцию USES и вообще автоматически редактировать текст в PAS-файлах - тем более при обычном Save? Пусть даже при этом не будет работать редактор форм. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 00:05 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Никак. Если нужно компилировать и там и там, то используйте Unit aliasing. Подбирал экспериментально. Так же создавал папку с "пустыми" юнитами (типа System.ImageList) от новой Delphi в старом проекте и включал её в пути. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 00:14 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Среда добавляет модули тех компонентов, которые находятся на форме. Создавайте компоненты ДИНАМИЧЕСКИ, тогда среда ничего добавлять не будет. Странно считать, что компонент на форме ЕСТЬ, а модуля в USES не должно быть ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 00:28 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
DimaBr Среда добавляет модули тех компонентов, которые находятся на форме. Создавайте компоненты ДИНАМИЧЕСКИ, тогда среда ничего добавлять не будет. Странно считать, что компонент на форме ЕСТЬ, а модуля в USES не должно быть Они есть в секции USES - но среда это не понимает. Пример (у меня сложнее - но я для краткости минимизировала данный глюк Delphi XE8, в D2007 такого небыло): {$DEFINE cond} unit Unit1; interface uses System.Classes, Vcl.Controls, Vcl.StdCtrls; //среда сама добавляет хлам в USES uses {$IF Defined(cond)} Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls {$ENDIF}; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('100'); end; end. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 01:08 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Наталья87 Код: pascal 1.
Попробуй Код: pascal 1.
Мало ли, вдруг поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 01:17 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Наталья87Пример (у меня сложнее - но я для краткости минимизировала данный глюк Delphi XE8, в D2007 такого небыло): Уберите второй "USES". Он как горец - может быть только один. Я бы на вашем месте избавился от условной компиляции совсем, но об этом мы уже говорили в прошлом году, не так ли?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 01:23 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Кажется, удалось победить среду после почти года мучений. Среда добавляет мучор в секцию USES если в ней используется что-то подобное USES {IF Defined}...{ELSE}...{IFEND} или USES {$I some_unit.pas} Решение вопроса. Вместо слова USES пишем {$I USES.pas} в USES.pas прописываем одно слово из 4-х букв USES потом после этого можно писать модули с кучей IFDEF и как угодно вообще, в том числе {$I some_units} в этом случае среда разработки Delphi теряется и ничего не добавляет в секцию USES Правда, визуальный редактор форм более недоступен для модулей, где так прописали Но если что то надо подредактировать визуально в конкретном модуле - меняем обратно {$I USES.pas} на USES подредактируем, подчистим мусор за средой, заменим обратно USES на {$I USES.pas} Чтобы сократить данные действия - можно вместо {$I USES.pas} прописывать {$IFNDEF hack} {$I USES.pas} {$ELSE} uses {$ENDIF} тогда менять надо будет всего лишь одну букву по умолчанию ifndef а для возможности использования визуального редактора в конкретной форме меняем на ifdef потом когда то, что нужно подредактируем - подчистим мусор за средой и вернем обратно IFNDEF то есть получается 2 режима - визуальная среда разработки мусорит и работает, либо не работает, но и не мусорит недостаток в том, что не получится всё равно заставить визуальный редактор работать, но при этом не мусорить как в delphi 7 ... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 01:56 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 01:59 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Слишком разный список модулей у меня (а также последовательностей их вызова) для D2007 и для XE8 поэтому сложно от этих IFDEF и {$I } в секции USES избавиться. Буду пробовать что то с alias-ами но тут тоже все не совсем очевидно. А пока пусть будет это решение с квадратными колесами и чтобы проект компилировался в обоих средах (причем в D2007 будет все как прежде, ничего не изменится, а в XE8 будут требоваться ухищрения). Если бы удалось запретить среде XE-8 разработки что-то добавлять в USES, понять как можно пакетно добавлять несколько модулей в USES - цены бы ей небыло можно было бы гораздо быстрее на нее перейти совсем ... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 02:14 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Странно слышать такое, когда у меня уже более четверти века нормально работает такая секция uses Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 02:38 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Наталья87, Код: pascal 1. 2. 3. 4. 5.
А теперь подумайте, какая строка с uses будет, если не будет объявлен дефайн? Конечно, вы понимаете, что дефайн объявлен всегда. Но среда-то об этом не знает и допускает, что дефайн можетт быть не объявленным. И в этом случае будет uses; А такого не должно быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 07:57 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Нельзя толком в редактируемых формах что-то с uses сделать, всегда будет что-то да нарушаться. Если не редактировать - то можно дефайнами обойтись ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 10:09 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
RAD до сих пор не может нормально обрабатывать $IF конструкции в режиме кода. Чистые $IFDEF - нормально. Даже если сделать {$IF Foo} {$DEFINE Bar} и потом {$IFDEF Bar} - тоже не прожует. Нормальное решение: либо чистый IFDEF, либо алиасы и пустые юниты-заглушки. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 10:31 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal RAD до сих пор не может нормально обрабатывать $IF конструкции в режиме кода. Чистые $IFDEF - нормально. Даже если сделать {$IF Foo} {$DEFINE Bar} и потом {$IFDEF Bar} - тоже не прожует. Нормальное решение: либо чистый IFDEF, либо алиасы и пустые юниты-заглушки. Проблема в том, что {$I } тоже плохо обрабатывает в секции USES, а мне нужно в каждую форму подключить одинаковый набор модулей в строго определенном порядке. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 10:45 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Нет, мой велосипед с квадратными колёcами (размещенный здесь в 2 часа ночи) что-то слишком плохо едет. Еще один вариант решения. Представляю на суд сообщества. Мне нужно чтобы в каждой форме в USES были прописаны определенные модули (собственно, для этого и подключается) {$I USES.inc} в секцими USES Думаю сделать так: USES {AUTO1} //обычный комментарий с четко обозначенным содержимым для поиска //здесь всякая шушара, которую Delphi сам добавляет, список может пополняться при развитии проекта USES Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls {AUTO2} //тут добавляем свои модули - используя как {$I }, так и {$IFDEF}, {$IF Defined} и т. д. ; Далее как обычно работаем с проектом, Delphi видит "свою" секцию USES (между AUTO1 и AUTO2) для разной шушары, видит свои модули и больше ничего автоматически не добавляет. Если потребуется использовать новый модуль - просто пишем скрипт на AutoIt, который во всех формах проекта заменяет текст между {AUTO1} {AUTO2} на нужный Тоже своего рода велосипед - но колёса уже почти круглые, неудобств минимум кроме необходимости периодически запускать AutoIt скрипт, который нужно написать только 1 раз ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 10:48 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
northener Странно слышать такое, когда у меня уже более четверти века нормально работает такая секция uses Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
У Вас тут нет ни одного инклуда. А неплохо бы вынести всё что у вас в отдельный файл VCL.pas И писать в каждом модуле проекта, где такой набор модулей в таком порядке нужен USES {$I VCL.pas}, ...; Вот только XE-8 это не прожуёт. А в Delphi 2007 нормально будет работать в том числе в Form Designer. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 10:56 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
goldmi45 Наталья87, Код: pascal 1. 2. 3. 4. 5.
А теперь подумайте, какая строка с uses будет, если не будет объявлен дефайн? Конечно, вы понимаете, что дефайн объявлен всегда. Но среда-то об этом не знает и допускает, что дефайн можетт быть не объявленным. И в этом случае будет uses; А такого не должно быть. Среда Delphi 2007 может быть тоже не понимала - но хотя бы не мусорила в этом случае. А среда Delphi XE-8 не понимает - но при этом с радостью вставляет свою шушару и делает проект некомпилируемым. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 11:01 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Наталья87, Я в какой-то момент, при необходимости одновременной работы в 2 версиях, делал пустые модули с тем же именем, что и автоматически добавляемые файлы, и подключал их с дефайном более ранней версии в dpr. В моем случае это были 2 модуля. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 11:22 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
swame2, Наталья не любит простых решений. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 11:24 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Если прям вот строго определенный набор модулей в определенном порядке, то скрипт сойдет. Только если вдруг сработает автодобавление, оно вкарячится в конец списка. Но вообще это экономия на спичках. Если уж так не хочется видеть "мусор", оберни его в $REGION и успокойся ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 11:33 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Обходное решение в лоб: Код: pascal 1. 2. 3. 4. 5.
Тогда автоматически Delphi будет добавлять модули под NeverDefineThisSymbol, который никогда не определён, и, следовательно, эффекта иметь не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 11:50 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
GunSmoker Delphi будет добавлять модули под NeverDefineThisSymbol, ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 12:06 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Наталья87 где такой набор модулей в таком порядке нужен ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 12:07 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
_Vasilisk_ GunSmoker Delphi будет добавлять модули под NeverDefineThisSymbol, Думаю, зависит от того, как именно написан uses, и что из него сумела распарсить IDE; ну и может от версии IDE ещё. Если IDE добавляет в конец - поставить эту конструкцию в конец тогда. Но судя по сообщению ТС - среда добавляет в начало. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:12 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
GunSmoker Но судя по сообщению ТС - среда добавляет в начало. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:17 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
GunSmoker Обходное решение в лоб: Код: pascal 1. 2. 3. 4. 5.
Тогда автоматически Delphi будет добавлять модули под NeverDefineThisSymbol, который никогда не определён, и, следовательно, эффекта иметь не будет. Огромное спасибо. Ваше решение с небольшими модификациями заработало (ниже указано - как оно у меня заработало). Удалось обмануть среду Delphi - чтобы она добавляла свой мусор в определенное место и чтобы он не влиял на компиляцию. Визуальный редактор форм при этом тоже работает и не ругается. Велосипед, конечно в какой-то мере - но колеса почти идеально круглые - по крайней мере не хуже, чем были в Delphi 2007. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:20 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
_Vasilisk_А что вы такое написали, что для вас критичен *порядок* модулей? Прочитай её предыдущие топики. Она половину VCL отхакала, поэтому если её костыли не окажутся последними - работать не будут. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:25 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
_Vasilisk_ GunSmoker Но судя по сообщению ТС - среда добавляет в начало. Да - так именно и было. А если USES подключать из внешнего файла - не работал редактор форм. GunSmoker подсказал - спасибо ему - дело видимо не только в слове USES - а еще в слове Windows - видимо среда разработки ищет это слово при вставке модулей - а теперь находит, куда надо вставлять. Так как среда всё равно тупая и не понимает, куда надо модули вставлять - логичным оказывается решение воспользоваться её тупостью и сделать чтобы она вставляла модули в то место, где они не мешают компиляции. От самой среды по сути нужен визуальный редактор форм, а от программного кода - чтобы он компилировался - теперь оба условия выполняются. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:25 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
_Vasilisk_ GunSmoker Delphi будет добавлять модули под NeverDefineThisSymbol, В том и дело, что раньше добавлялись ПЕРЕД моей секцией USES. А теперь добавляются нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:26 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov _Vasilisk_А что вы такое написали, что для вас критичен *порядок* модулей? Прочитай её предыдущие топики. Она половину VCL отхакала, поэтому если её костыли не окажутся последними - работать не будут. Похоже, костыли уже одни из последних. Приложение на 400 тысяч строк кода, уже год пытаюсь перенести с Delphi 2007 на XE-8. Уже за год на XE-8 всё нормально компилируется и отлажено, все баги устранены почти. Остается один шаг - вообще уйти с Delphi 2007 и полностью перейти на XE8. При этом, разумеется, кучи хлама в проекте на XE-8 совсем не хочется притом что в Delphi 2007 всё в порядке было. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:29 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Наталья87Остается один шаг - вообще уйти с Delphi 2007 и полностью перейти на XE8. Вы так и не познакомились с системами контроля версий и их ветками. Ну да, Вам же некогда, кодировать надо... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:37 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
_Vasilisk_ Наталья87 где такой набор модулей в таком порядке нужен Например, поведение приложения при нажатии кнопки "Свернуть" (обсуждали уже здесь недавно). Притом, что все формы у меня модальные. Нужно чтобы при нажатии "Свернуть" в любом окне программы - сворачивалась программа целиком, а потом точно также аккуратно разворачивалась. Из прочего - цветные кнопки (наследники TButton), цветные меню, свои модули - например, по работе с файлами, с MD5, работа с Excel и прочее. Разумеется, хочется, чтобы все было в одном стиле во всем приложении - и чтобы не подключать все модули к каждой форме приложения (и не редактировать потом все формы - если добавится новый модуль) - и хочется написать что-то подобное USES {$I All.inc}, ...; И так уже более 400 тысяч строк кода - еще более 200 копий одинаковых модулей там не хватало чтобы окончательно запутаться ... То есть это не говнокод в его понимании - наоборот, стремление всё упорядочить чтобы небыло лишних копий кода, а возможно, какое-то нестандартное применение. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:39 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Наталья87Остается один шаг - вообще уйти с Delphi 2007 и полностью перейти на XE8. Вы так и не познакомились с системами контроля версий и их ветками. Ну да, Вам же некогда, кодировать надо... Вести 2 версии параллельно на D2007 и на D XE8? Нет, спасибо. И без этого уже задолбаюсь. Как получится привести код в нормальное состояние на XE8 - просто уйду с 2007 окончательно и всё. Пока все еще веду на 2007 - но для пользователей код компилирую на XE8 (код, написанный для 2007 и преобразовываемый AutoIt-ом для XE-8 для компиляции). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:43 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Наталья87То есть это не говнокод в его понимании Не хочу Вас расстраивать, но это именно он. Причём в терминальной стадии. А ведь всего-то было достаточно при кодировании "цветной кнопки" назвать её чуть-чуть иначе, чем TButton и прописать нужные модули в секцию зависимостей её пакета... PS: О том чтобы не бороться с ветряными мельницами и не пытаться раскрашивать системную кнопку, которая к этому не приспособлена я уже молчу. Наталья87хочется написать что-то подобное USES {$I All.inc}, ...; А нормальные люди не борются со средой и позволяют ей автоматически "написать что-то подобное" при первом броске своей кнопки на форму. Наталья87Вести 2 версии параллельно на D2007 и на D XE8? Нет, спасибо. И без этого уже задолбаюсь. Вы таки не поверите, но задолбались Вы именно от желания НЕ вести две версии параллельно. Уже упомянутые СКВ облегчают именно этот процесс до тривиального. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:47 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Наталья87То есть это не говнокод в его понимании А ведь всего-то было достаточно при кодировании "цветной кнопки" назвать её чуть-чуть иначе, чем TButton и прописать нужные модули в секцию зависимостей её пакета... Ну допустим, назовём её ColorButton. А как во все модули форм прописывать? Как дура и буду бегать по всем формам, дописывать везде в секцию USES , ColorButton ? А если ColorMenu добавится - что - снова бегать по модулям и добавлять? Если приложение было сделано с обычными кнопками, а потом заказчик захотел цветные? А потом захотел, например, цветные меню. Какое тут еще может быть решение кроме модулей, подключаемых списком ко всем формам приложения? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:51 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Наталья87 А как во все модули форм прописывать? Как дура и буду бегать по всем формам, дописывать везде в секцию USES , ColorButton ? Внезапно: бросаете на форму свой ColorButton и среда САМА прописывает его в секцию USES. Причём только в те формы, где он реально нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:53 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov PS: О том чтобы не бороться с ветряными мельницами и не пытаться раскрашивать системную кнопку, которая к этому не приспособлена я уже молчу. А что делать если весь проект написан с кучей TButton - например? Переделывать весь проект на основе другого компонента ради того, чтобы кнопки сделать цветными (а потом еще отлавливать баги)? И опять бегать по всем модулям? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:54 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Наталья87 А как во все модули форм прописывать? Как дура и буду бегать по всем формам, дописывать везде в секцию USES , ColorButton ? Внезапно: бросаете на форму свой ColorButton и среда САМА прописывает его в секцию USES. Причём только в те формы, где он реально нужен. А что делать со старыми формами? Где TButton, а не TColorButton? А этих форм сотни, т. к. в проекте более 400 тысяч строк кода? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:55 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Наталья87А что делать со старыми формами? Где TButton, а не TColorButton? А этих форм сотни, т. к. в проекте более 400 тысяч строк кода? Поверьте, открыть их все и бросить TColorButton на каждую - заняло бы гораздо меньше времени чем год хаков. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 13:58 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Наталья87А что делать со старыми формами? Где TButton, а не TColorButton? А этих форм сотни, т. к. в проекте более 400 тысяч строк кода? Поверьте, открыть их все и бросить TColorButton на каждую - заняло бы гораздо меньше времени чем год хаков. Никакого года на хаки не потрачено. Проект продолжает вестись и развиваться на базе 2007. Просто время от времени компилируется на XE8, сборка на XE8 уже почти не имеет глюков и практически не хуже, чем на 2007. Надеюсь, перейду полностью на XE8 в скором времени, 2007 роднее конечно, но к XE8 тоже уже почти привыкла. Торопиться не стоит - надо сначала убедиться, что действительно багов серьезных нет - может, еще полгода подождать что скажут пользователи. А потом в очередной раз AutoIt-ом преобразую проект из D2007 на XE-8 и от 2007 уйду насовсем без всяких систем контроля версий. А то продолжать вести проект на 2007 и компилировать на XE8 это означает не использовать новые возможности, что появились в XE-8. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 14:10 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Ну-ну. До встречи ещё через год. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 14:15 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Оооо, я не зря читал этот тред! автор Код: pascal 1.
Не знал, что IF Declared работает с юнитами. Не знаю, правда, как это применять, но забавно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 14:36 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Наталья87 Например, поведение приложения при нажатии кнопки "Свернуть" (обсуждали уже здесь недавно). Притом, что все формы у меня модальные. Нужно чтобы при нажатии "Свернуть" в любом окне программы - сворачивалась программа целиком, а потом точно также аккуратно разворачивалась. Из прочего - цветные кнопки (наследники TButton), цветные меню, Наталья87 А что делать со старыми формами? Где TButton, а не TColorButton? А этих форм сотни, т. к. в проекте более 400 тысяч строк кода? 1. Создаете новый пакет. 2. В этом пакете создаете новый компонент Код: pascal 1.
3. Инсталлируете этот пакет 4. По всем pas и dfm файлов выполняете замену TButton -> TColorButton 5. Все. Работы часа на два, если с перерывом на кофе ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 15:23 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
_Vasilisk_ Работы часа на два, если с перерывом на кофе Для Программиста - пожалуй, да. А для быдлокодера - пожалуй, пару недель займёт :( зато мой проект из 400 000 строк на чистой D2007 компилируется. Думаю, в итоге приду к Вашему решению но уже после перехода на XE-8, в D2007 незачем уже огороды городить, надо с нее скорее уходить, 2021 год на дворе. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 15:48 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Есть и другой способ, без всяких инсталяций. Код: pascal 1. 2. 3.
И во всех модулях где нужно заменить TButton на TColorButton дописываем ВНАЧАЛО uses MyButton ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 16:00 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
DimaBrИ во всех модулях где нужно заменить TButton на TColorButton дописываем ВНАЧАЛО uses MyButton ....а потом начинаем топик "как запретить Delphi вставлять модули в секцию USES", всё логично, да... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 16:05 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Наталья87 ...но уже после перехода на XE-8, в D2007 незачем уже огороды городить, надо с нее скорее уходить, 2021 год на дворе. А на Delphi 11 - в 2031 году переходить, ага. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 16:15 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Наталья87 Для Программиста - пожалуй, да. А для быдлокодера - пожалуй, пару недель займёт ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 16:27 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
DimaBr дописываем ВНАЧАЛО uses MyButton ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 16:29 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Какие-то бессмысленные метания. Если цель уйти на XE8 и там уже всё собирается, то докинуть пустых юнитов в старый проект, чтобы и он собирался и на этом всё. Другое дело что ни это, ни любые define не помогут если в dfm новые свойства пропишутся или ещё что такое. Поэтому надо уже перейти, а старый забыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 16:35 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Michael Longneck Какие-то бессмысленные метания. Если цель уйти на XE8 и там уже всё собирается, то докинуть пустых юнитов в старый проект, чтобы и он собирался и на этом всё. Другое дело что ни это, ни любые define не помогут если в dfm новые свойства пропишутся или ещё что такое. Поэтому надо уже перейти, а старый забыть. У этого самурая нет цели... только желание избавиться от дублирования "мусора" в секции uses ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 16:45 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Michael LongneckПоэтому надо уже перейти, а старый забыть. Повторяю за аффтаршей медленно: старый проект постоянно допиливается, а СКВ, которая могла бы облегчить слияние изменений, она ниасилила. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 16:53 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Ну так и допиливать в его в XE8, или он допиливается ещё 5 человеками на 2007, а на XE8 переходит только автор топика? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 17:25 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Michael Longneck Какие-то бессмысленные метания. Если цель уйти на XE8 и там уже всё собирается, то докинуть пустых юнитов в старый проект, чтобы и он собирался и на этом всё. Другое дело что ни это, ни любые define не помогут если в dfm новые свойства пропишутся или ещё что такое. Поэтому надо уже перейти, а старый забыть. Перейти на XE-8 полностью теперь не проблема благодаря совету GunSmoker-а (можно переходить хоть прямо сейчас) - для этого не придется копировать одинаковые списки в каждый unit, а всё будет почти также красиво, как на D2007. Но думаю, еще полгодика лучше все же подожду - посмотрим, что юзеры скажут, баги поисправлять надо. А может полгода нет смысла тянуть и три месяца хватит ... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 21:19 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
ъъъъъ Наталья87 ...но уже после перехода на XE-8, в D2007 незачем уже огороды городить, надо с нее скорее уходить, 2021 год на дворе. А на Delphi 11 - в 2031 году переходить, ага. Для этого D11 неплохо бы сначала купить. А цены у них ну вы сами понимаете. Перейти с XE8 на XE10 вообще не проблема, времени займет пять минут в отличие от перехода с D2007 на XE8. Да и XE8 в принципе то неплохая среда, довольно современная. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 21:21 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Michael LongneckПоэтому надо уже перейти, а старый забыть. Повторяю за аффтаршей медленно: старый проект постоянно допиливается, а СКВ, которая могла бы облегчить слияние изменений, она ниасилила. Да представляю примерно, что такое СКВ. Но не хочется с ними огород городить тем более переход уже на 99% сделан. Вносить доработки параллельно в 2 проекта на D2007 и на XE8 это ад и СКВ разве что облегчит этот процесс но лучше просто не вести 2 проекта параллельно тогда и с СКВ заморачиваться не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2021, 21:24 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
[quot Наталья87#22393500] northener Странно слышать такое, когда у меня уже более четверти века нормально работает такая секция uses Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
У Вас тут нет ни одного инклуда. А неплохо бы вынести всё что у вас в отдельный файл А. Вы так вот про что... Да у меня тут нет никакого такого бреда. Типа писать в каждом модуле проекта, где такой набор модулей в таком порядке нужен USES {$I VCL.pas}, ...; Я пока не понимаю зачем такой инклуд нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 02:54 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
[quot northener#22393938] Наталья87 пропущено... У Вас тут нет ни одного инклуда. А неплохо бы вынести всё что у вас в отдельный файл А. Вы так вот про что... Да у меня тут нет никакого такого бреда. Типа писать в каждом модуле проекта, где такой набор модулей в таком порядке нужен USES {$I VCL.pas}, ...; Я пока не понимаю зачем такой инклуд нужен. Ну захотелось заказчику, чтобы все кнопочки в программе стали зелёными - пожалуйста. Через два дня захотелось чтобы стали красными - правок на 2 минуты. Можно вообще опцию сделать, изменяющую например цвет кнопок во всей программе. Просто в базовом классе ColorForm (который подключим ко всем формам) прописываем нужные цвета (либо читаем из ini) и они автоматом обновятся во всех формах. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 10:22 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Наталья87 (который подключим ко всем формам) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 13:32 |
|
Запретить Delphi вставлять модули в секцию USES при компиляции и сохранении проекта
|
|||
---|---|---|---|
#18+
Наталья87Ну захотелось заказчику, чтобы все кнопочки в программе стали зелёными - пожалуйста. Через два дня захотелось чтобы стали красными - правок на 2 минуты. Можно вообще опцию сделать, изменяющую например цвет кнопок во всей программе. Не самые глупые люди в своё время озаботились этим на уровне системы. Потом пришли молодые энтузизасты и перепилили хорошую идею в "темы". А заставлять пользователя настраивать желаемую палитру и прочий UX в каждом приложении отдельно - это линуховый садизм. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 14:40 |
|
|
start [/forum/topic.php?all=1&fid=58&tid=2036891]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 318ms |
0 / 0 |