![]()  | 
	
 
  | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 На второй строке появляется ошибка: 
		
	
		
		
			Код: 
	if IsNumeric(crS.dbnum) and IsNumeric(dbLast) and IsNumeric(dm.cdsClaimDb1.AsString) then if ( StrToInt(crS.dbNum) in [dm.cdsClaimDb1.AsInteger..StrToInt(dbLast)]) then // тут  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Такая ошибка возникает когда выходишь за пределы массива или обрашаешься к элементу за пределами массива... 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Попробуй в настройках проекта отключить эту проверку и прогнать выполнение. Иногда это дело глючит. 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цитата: 
	
 ![]() MAcK Ошибка - в неправильном использовании оператора in По правилам, он должен использоваться для проверки вхождения элемента в к.л. множество, а не для проверки вхождения числа в диапазон. Тебе следует переписать второе условие: Код: 
	if ( StrToInt(crS.dbNum) >= dm.cdsClaimDb1.AsInteger ) and ( StrToInt(crS.dbNum) <= StrToInt(dbLast) ) then Заметка на счёт множества : оно не может содержать более 255 элементов, например этот код нормально выполняется: Код: 
	var a,b,c:integer;
begin
 a:= 50; b:=10; c:=100;
 if a in [b..c] then Writeln('In')
 else Writeln('Out');
 Readln;
end.А вот этот вызовет ошибку "Range check error" Код: 
	var a,b,c:integer;
begin
 a:= 500; b:=100; c:=1000;
 if a in [b..c] then Writeln('In')
 else Writeln('Out');
 Readln;
end. | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Спасибо за объяснения - не знал про лимит диапазона для in.  |