Начало » Программирование » 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    | 
		 
		
			
				
				
				
					
						  
						
						 Сообщений: 204 Зарегистрирован: 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
						 Сообщений: 452 Зарегистрирован: August 2022 
						
					 | 
					Senior Member  | 
					 | 
		 
		 
	 | 
 
	| 
		Подключаешь стороннюю библиотеку как субмодуль. Одной командой переключаешь её между версиями. В одном каталоге. Никаких изменений не требуется. Никакой иронии, обычный рабочий процесс.
		
		
		
 |  
	| 
		
	 | 
 
 
 |   
Переход к форуму:
 
 Текущее время: Tue Nov 04 03:20:18 GMT+3 2025 
 Общее время, затраченное на создание страницы: 0.00773 секунд 
 |