![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
	 | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 у меня на форме динамически создаэтся 11 прогрессбаров: 
		
	
		
		
		
		
		
	
		
		
	
	
	Код: 
	      bars[i] := TProgressBar.Create(Form1);
      bars[i].Parent := Form1;
      bars[i].Left := 22;
      bars[i].Width := 521;
      bars[i].Top := 22+40*i;Пробывал так: Код: 
	procedure TForm1.Timer1Timer(Sender: TObject);
var
  pb  : TProgressBar;
  i : integer;
begin
 pb := TProgressBar(FindComponent('bars[' + IntToStr(i)+']'));
  if Assigned(pb) then
  begin
    pb.Position := pb.Position + 1;
    if pb.Position >= 100 then
      inc(pBar);
    if pBar > 11 then
    begin
      Timer1.Enabled := False;
      Button1.Enabled := true;
    end;
  end;
end;
Ясно что я неправильно выбираю прогресбары. Как их ПРАВИЛЬНО выбирать?  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Код: 
	pb := bars[i];  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Код понял, а как сделать полем формы? 
		
	
		
		
		
		
		
		
			У меня bars : array[0..10] of TProgressBar; переменная формы Теперь возник такой вопрос. К прогресбару из таймера я обращаюсь радномно и надо если у ВСЕХ прогресбаров позиция больше или равна 100 произвести определенные действия. Как это красвио написать? Там вроде надо ксор использовать... И еще (код у меня пока далеко не оптимальный) но всеже хочу понять почему во время выполнения программы возникает ошибка времени выполнения "Access violation at adress 00403414 min module. Read of adress 00A28000"? Кто может здесь помочь? Последний раз редактировалось M.A.D.M.A.N., 25.03.2013 в 19:23.  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цитата: 
	
  | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 AV - доступ к компоненту/переменной/объекту, который отсутствует в памяти. Это может быть, например, выход за границы динамического массива. Посмотри, где появляется эта ошибка, и пройдись по функции (целиком) в отладчике. Там увидишь, где ошибка. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 ПРИ дебаге, он меня выкидывает в  
		
	
		
		
		
		
		
		
			Код: 
	begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. Я нашел какой кусок кода вызывает ошибку: Код: 
	Text[4] := TLabel.Create(Form1); Text[4].Parent :=Form1; Text[4].Caption := 'Áîðãè'; Text[4].Left := 435; Grid[4] := TDrawGrid.Create(Form1); Grid[4].Parent := Form1; Grid[4].Left := 421; Grid[4].RowCount := 1; Grid[4].ColCount := 1; Grid[4].Enabled := false; Grid[4].DefaultColWidth := 100; Grid[4].DefaultRowHeight := 6*debts; Grid[4].Width := 100; Grid[4].Height := 6*debts; Grid[4].Top := 600-Grid[4].Height+20; Grid[4].ScrollBars := ssNone; Grid[4].Tag := 5; Grid[4].OnDrawCell:=DrawGrid1DrawCell; Последний раз редактировалось M.A.D.M.A.N., 25.03.2013 в 19:24.  | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 В каком методе этот код? И в какой строчке вылетает? 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Код: 
	Text[4] := TLabel.Create(Form1); Код: 
	Text[3] := TLabel.Create(Form1); P.S. Код: 
	Grid : array[0..16] of TDrawGrid; Text : array[0..16] of TLabel;  | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 1. В вашем коде на срабатывание таймера совершенно не ясно какой бар вы обрабатываете. Чему равен индекс массива i ?  
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	2. Вот что вы хотели сказать в этой строчке кода? Код: 
	if pBar > 11 then
    begin | 
| 
		 
			 
			#10  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Привет, давно не виделись  
		
	
		
		
		
		
			
		
		
		
		
		
			![]() Код: 
	if pb.Position >= 100 then
      inc(pBar);
    if pBar > 11 then![]() Последний раз редактировалось PhoeniX, 24.03.2013 в 13:30.  | 
| 
		 
			 
			#11  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цитата: 
	
  |