| 
							Basurman
							
						 | 
						
							
								  | 
								
									
									 «  : 07-06-2008 14:03 »   | 
								
								 | 
							  
							 
							Вопрос такой: с какими глюками компиляторов и IDE приходилось сталкиваться, и как удалось решить проблемы? Конечно в 99% случаев виноват криво написанный код, но иногда... Конкретная проблема, при использовании Delphi 2005. В один прекрасный момент, после перезагрузки Delphi (достаточно завершить работу Delphi и запустить снова, без перезагрузки ОС) - перестаёт нормально восприниматься один из модулей проекта. При этом смысл диагностического сообщения примерно такой: В модуле ХХХ, вместо ключевого слова UNIT обнаружена неизвестная целочисленная константа. Что бы это значило, и как это исправить? Дополнительная информация: Отказ винта (ошибки при чтении) - исключён, проект для проверки перемещался на другой физический винт. Текст модуля содержит только определения констант. Раньше было подозрение, что IDE не дружит с комментариями и проблема решалась удалением комментариев, но в данном случае в проекте комментарии вообще отсутствуют. При просмотре "виноватого" файла в Hex-редакторе - всё на месте и ничего лишнего. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Basurman
							
						 | 
						
							
								  | 
								
									
									 « Ответ #1 : 07-06-2008 23:17 »   | 
								
								 | 
							  
							 
							Могу добавить, что строка:   WndName = 'Заготовка программы' не вызывает отрицательной реакции у IDE, замена же этой строки на:   WndName = 'Прототип приложения' приводит к вышеописываемой реакции. Если удалить файл с таким глюком из проекта, оставив ссылку на него в разделах uses модулей - то всё прекрасно. Ошибки пропадают, проект компилируется. Вот только этот модуль, при необходимости, править в блокноте приходится - что не есть хорошо. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							zubr
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #2 : 08-06-2008 06:28 »   | 
								
								 | 
							  
							 
							Basurman, сторонние компоненты устанавливал какие нибудь? Дело в том, что в Delphi есть интерфейсы позволяющие перехватывать сами действия IDE. И если какой либо сторонний компонент их использует некорректно - вполне могут быть такие глюки. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Basurman
							
						 | 
						
							
								  | 
								
									
									 « Ответ #3 : 08-06-2008 14:06 »   | 
								
								 | 
							  
							 
							Сторонних компонентов не устанавливал. Это глюк именно IDE. В Delphi 5, на другом аппарате естественно, - эти же файлы нормально обрабатываются. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							DrGluck
							
						 | 
						
							
								  | 
								
									
									 « Ответ #4 : 10-06-2008 04:53 »   | 
								
								 | 
							  
							 
							Я когдато мучился с Keil, который упорно компилил неправильно проект на ассемблере. Я мучился несколько дней. Перепробовал все ключи компилятора/линковщика. В итоге выяснилось, что каким то образом в конце некоторых строк появлялось не $0D, $0A, а просто $0D (притом регулярно, и у разных строк). В результате такая строка пропускалась при компиляции. Это я к тому, что может посмотреть в виде HEX на твой модуль? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Good user - dead user 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Basurman
							
						 | 
						
							
								  | 
								
									
									 « Ответ #5 : 10-06-2008 14:41 »   | 
								
								 | 
							  
							 
							DrGluck, насчёт HEX-просмотра упомянул в самом начале. К тому же эти-же файлы нормально воспринимаются другой версией Delphi. Вообще это глюк именно Delphi 2005 IDE, на дух не переносящей некоторых буквосочетаний. Это конечно не смертельно, но весьма неудобно. К счастью все эти файлы не содержат элементов из VCL. Поэтому их можно исключить из проекта, оставив ссылки на них в разделах USES - там, где это требуется. Вот только редактировать их приходится не в среде Delphi IDE, а например в блокноте. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Basurman
							
						 | 
						
							
								  | 
								
									
									«  Ответ #6 : 23-08-2008 09:06 »    | 
								
								 | 
							  
							 
							Итак, в конце концов, выяснилось: IDE Delphi 2005 неадекватно реагирует на появление символов национального алфавита (неанглийского - в нашем случае русского) в разделе INTERFACE модуля. Появление этих же символов в разделе IMPLEMENTATION отрицательной реакции не вызывает. Кстати даже комментарии на английском в разделе INTERFACE, могут привести к тому, что IDE (именно IDE, а не компилятор) перестанет нормально воспринимать текст модуля. Приходится поступать следующим образом: Все комментарии даются только в разделе IMPLEMENTATION. Определения констант выносятся во включаемый файл, в модуле даётся ссылка INCLUDE CONSTFILE.INC (это пример). 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Modanno
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #7 : 26-08-2008 13:10 »   | 
								
								 | 
							  
							 
							Вообще-то этого следует избегать, на мой взгляд. Лучше писать по-английски. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	 |