Начало » Программирование » Delphi » Unit1 in 'Unit1.pas' (вот те на)
Unit1 in 'Unit1.pas' [сообщение #3930] |
Tue, 19 December 2023 15:16 |
shalamyansky
Сообщений: 150 Зарегистрирован: August 2022
|
Senior Member |
|
|
Оказывается, конструкция
uses
Unit1 in 'Unit1.pas';
работает только в модулях типа program и library. В ординарных юнитах компилятор, увидев in, показывает фигу.
Казалось бы, вот почему бы ему не делать единообразно, уж коли придумали такой синтаксис? Только я собрался разрулить версии таким удобным способом, ан нет.
Delphi XE3. Нет желания проверять на других версиях, но что-то мне подсказывает, что это и везде так.
[Обновления: Tue, 19 December 2023 15:44] Известить модератора
|
|
|
Re: Unit1 in 'Unit1.pas' [сообщение #3934 является ответом на сообщение #3930] |
Tue, 19 December 2023 16:47 |
Сообщений: 197 Зарегистрирован: September 2022
|
Senior Member |
|
|
shalamyansky писал(а) Tue, 19 December 2023 15:16Оказывается, конструкция
...
Delphi XE3. Нет желания проверять на других версиях, но что-то мне подсказывает, что это и везде так.
Зачем проверять, если в документации явно сказано:
In the uses clause of a program or library, any unit name may be followed by the reserved word in and the name of a source file, with or without a directory path, in single quotation marks; directory paths can be absolute or relative.
...
In the uses clause of a unit, you cannot use in to tell the compiler where to find a source file. Every unit must be in the compiler's search path.
ЗЫ: в документации ещё много чего интересного. 8)
|
|
|
Re: Unit1 in 'Unit1.pas' [сообщение #3935 является ответом на сообщение #3934] |
Tue, 19 December 2023 18:38 |
shalamyansky
Сообщений: 150 Зарегистрирован: August 2022
|
Senior Member |
|
|
Понятно. Законно, но не логично.
Жаль. Удобно было бы переключаться на разные версии юнитов и библиотек, не шуруя с путями:
uses
lib_unit
{$IFDEF LIB_VERS_2}in '/vers2/lib_unit.pas'{$ENDIF}
{$IFDEF LIB_VERS_3}in '/vers3/lib_unit.pas'{$ENDIF}
;
[Обновления: Tue, 19 December 2023 18:47] Известить модератора
|
|
|
|
|
Re: Unit1 in 'Unit1.pas' [сообщение #3964 является ответом на сообщение #3962] |
Thu, 21 December 2023 21:05 |
shalamyansky
Сообщений: 150 Зарегистрирован: August 2022
|
Senior Member |
|
|
SD писал(а) Thu, 21 December 2023 15:48Может, стоит освоить работу с системами контроля версий?..
Иронично, едко, но не в тему. VCS занимаются управлением версиями собственных творений. Задачу переключения по щелчку разных версий сторонних библиотек они не решают. Могли бы решать, если бы ссылка на библиотеку вместе с её расположением задавалась бы кодом, а не только настройками среды. Но эта возможность выключена, см. топик. В принципе можно менять через опцию проекта SearchPath, это стандартный способ. Однако через DEFINE быстрее, проще, универсальнее и мнемоничнее, прошу прощения за мой французский. Но не канает. Ну и ладно.
|
|
|
Re: Unit1 in 'Unit1.pas' [сообщение #3965 является ответом на сообщение #3964] |
Fri, 22 December 2023 01:38 |
SD
Сообщений: 411 Зарегистрирован: August 2022
|
Senior Member |
|
|
Подключаешь стороннюю библиотеку как субмодуль. Одной командой переключаешь её между версиями. В одном каталоге. Никаких изменений не требуется. Никакой иронии, обычный рабочий процесс.
|
|
|
Переход к форуму:
Текущее время: Thu Nov 21 15:41:36 GMT+3 2024
Общее время, затраченное на создание страницы: 0.00687 секунд
|