![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Здравствуйте. 
		
	
		
		
		
		
		
	
		
		
	
	
	В своем приложении я постоянно создаю и удаляю объекты Tlabel, для отображения данных. Проблема в том, что при отображении уже 20 надписей возникает ощутимая задержка. DoubleBuffered на родительском не помогает. Application.ProcessMessages лишь позволяет наблюдать за процессом создания, а не смотреть на застывшее окно. Код: 
	  
// в цикле создаем надписи.
        aLabel:=TLabel.Create(scrlbx);
        labels.Add(aLabel); // список TList для последующей работы 
        with aLabel do begin
          Left:=pointLeft;
          Top:=pointTop;
          Caption:='title';
          parent:=scrlbx; //TScrollBox
        end;
        pointTop:=pointTop+20;Код: 
	for I := 0 to labels.Count-1 do begin
     TLabel(labels[i]).Parent:= scrlbx;
  end;Выключение и включение параметра Visible до и после циклов также не спасает.  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Создание и удаление делать стоит как можно реже, т.к. выделение и освобождение памяти - медленные операции. ИМХО лучше менять параметры уже созданных (в том числе скрывать ненужные). 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Я засекал время для 100, 200, 500 объектов (больше не использую) Само создание объектов происходит, как раз, быстро. Узкое место именно в отображении... И тормоза начинаются от 20-30 штук.  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 попробуй перед удалением/добавлением сделать TScrollBox.AutoScroll:=False; потом вернуть True. на 500 TLabel время удаления/создания занимает 200мс. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 |