![]()  | 
	
 
  | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Привет всем . 
		
	
		
		
		
		
		
	
		
		
	
	
	Есть Scrollbox и на нем много Timage . Timage создаются динамически в программе и называются im1 , im2 , im50 и тд . Также у каждому Timage в hint пишется определенное слово , а точнее название файла с изображением которое загрузили в данный Timage . Вот теперь вопрос - Как сделать чтобы Scrollbox прокрутился к Timage с нужным мне hint'ом ?  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Ищешь TImage с нужным хинтом, а потом делаешь ScrollBox.ScrollInView(твой_найденый_TImage); 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Подскажи плз как найти Timage с нужным хинтом . 
		
	
		
		
		
		
		
	
		
		
	
	
	Спасибо.  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Попробовал так - 
		
	
		
		
		
		
		
	
		
		
	
	
	Код: 
	var
i:integer;
begin
for i:=0 to all_im do
if TImage(FindComponent('im'+inttostr(i))).Hint = im_now then
scrollbox1.ScrollInView(TImage(FindComponent('im'+inttostr(i))));Компилится норм , в программе выскакивает ошибка на строке Код: 
	if TImage(FindComponent('im'+inttostr(i))).Hint = im_now then | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Вообщем проблему ту решил ( была с all_im )  
		
	
		
		
		
		
		
	
		
		
	
	
	Но тут другая проблема - не находит он Timage . Ошибок не выскакивает .  | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 А владелец (Owner) объектов TImage у тебя случаем не TScrollBox? Если ДА то на форме ты их и не найдешь.... 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Да забыл еще дописать , на Tscrollbox еще Tpanel а на нем уже Timage . 
		
	
		
		
		
		
		
	
		
		
	
	
	так находит и прокручивается Код: 
	scrollbox1.ScrollInView(TImage(FindComponent('im'+inttostr(6)))); | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Ай блин все работает , это я там с хинтами намудрил -)) 
		
	
		
		
		
		
		
	
		
		
	
	
	Спасибо . Вопрос решен.  | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Чтобы не создавать новую тему . 
		
	
		
		
		
		
		
	
		
		
	
	
	При использовании - scrollbox1.ScrollInView(TImage(FindComponent('im'+ inttostr(i))) Как найти позицию у TImage(FindComponent('im'+inttostr(i)) на которой Timage в Scrollbox ? TImage(FindComponent('im'+inttostr(i)).left не подходит . Хочу сделать . чтобы плавно прокручивался Scrollbox до найденного Timage .  | 
| 
		 
			 
			#10  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Вообщем сделал так - 
		
	
		
		
		
		
		
	
		
		
	
	
	1.Записываю в переменную текущую позицию . 2. Потом делаю scrollbox1.ScrollInView(TImage(FindComponent('im'+ inttostr(i))) 3.Записываю новое положение в другую переменную . 4.Восстанавливаю позицию из первой переменной. 5.Далее делаю плавную прокрутку. Но назревает вопрос . У меня не заметно что происходит до 5го пункта . Но на слабом компьютере возможно будет заметны пункты 2 и 4 . Поэтому хотелось бы как-то по другому реализовать .  | 
| 
		 
			 
			#11  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Как и предполагалось на слабом ПК это заметно  
		
	
		
		
		
		
		
	
		
		
	
	
	  . |