![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 что нужно сделать чтобы не было этой ошибки? подскажите пожалуйста) 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Попытка обращения к несуществующему элементу объекта TStringList. Индекс должен быть больше или равен нулю и строго меньше количества строк. Покажи код, который вызывает исключение. 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 уверен у вас такой цикл точно есть:  
		
	
		
		
		
		
		
	
		
		
	
	
	Код: 
	for i:=0 to StringList.count do begin //something code... end; в общем ошибка в том что нужно отнимать 1 либо начинать с еденицы. т.е. или так: Код: 
	for i:=0 to StringList.count -1 do begin //something code... end; либо так Код: 
	for i:=1 to StringList.count do begin //something code... end;  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Доброго всем времени суток! 
		
	
		
		
		
		
		
	
		
		
	
	
	Пардоньте, что не начал новую тему(топик) - неча форум захламлять, когда на аналогичный предмет можно и здесь пообщаться. Проблемстон следующий: динамически (вродь как Run-Time) создаю кнопочку: Код: 
	Procedure CreateButtons2(DirName: string; Left_: integer);
begin
  Sbutton2:= TSoundButton.Create(Form1);
  with Sbutton2 do
  begin
    Caption := DirName;
    parent:=Form1;
    Height:= 25;
    Width:= 100;
    Top := 400;
    Left := Left_;
    Visible:= True;
    OnClick := Form1.SButton2Click;
  end;
end;Код: 
	procedure TForm1.ButtBackClick(Sender: TObject);
var
  i: integer;
begin
  ListBox1.Items.Add('ButtBackClick');
  For i:=0 to Form1.ControlCount-1 do
  if Form1.Controls[i].ClassType = TSoundButton then
  begin    
    ListBox1.Items.Add( SButton2.caption);
    SButton2.Free;
  end;
end;![]() З. Ы. А ежели кнопок будет 2 или 3 или ... их как "убивать"?  | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 По моему так правильней 
		
	
		
		
		
		
		
	
		
		
	
	
	Код: 
	for i:=0 to StringList.count -1 do begin //something code... end; Или, в крайнем случае методом тыка, компилятор всегда правильно ответит Цитата: 
	
  | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 В принципе так-же как и находите, только мне кажется, что это вообще неправильный подход делать стопку кнопок. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Код: 
	For i:=0 to Form1.ControlCount-1 do
  if Form1.Controls[i].ClassType = TSoundButton then
  begin    
    ListBox1.Items.Add( SButton2.caption);
    TSoundButton(Form1.Controls[i]).Free;
  end; | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Ну если одна и та же кнопка то появлятся то исчезает, то я бы, использовал бы свойство visible и не мучил бы диспетчер памяти 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цитата: 
	
 Код: 
	For Form1.ControlCount-1 downto 0 do
  if Form1.Controls[i].ClassType = TSoundButton then
  begin    
    ListBox1.Items.Add( SButton2.caption);
    TSoundButton(Form1.Controls[i]).Free;
    Break;
  end; | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цитата: 
	
  |