![]()  | 
	
 
  | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Здравствуйте. Пишу программу для игры в крестики нолики. Выигрыш проверяется по двумерному массиву. Требуется после игры его очистить, для очистки предусмотрена отдельная кнопка. Возможно ли очистить массив с помощью этой кнопки? Массив заполняется нажатиями на игровое поле, так же состоящее из кнопок.  
		
	
		
		
		
		
		
	
		
		
	
	
	Конкретно вопрос: как изменить массив в одной процедуре из другой, гуглил ничего найти не могу(  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Я сделал рестарт программы через ShellExecute, но хотелось бы, что бы работала очистка, а не перезапуск. 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Используй FillChar. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 можно поподробнее, никогда не сталкивался с этим) 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Код: 
	FillChar(MyBuffer, SizeOf(MyBuffer), 0); 0 - чем очищаем.  | 
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
 
Nik953 (03.12.2012)
  | ||
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 В принципе сделал - в кнопке очистки присовил кнопкам игрового поля исходные тэги. Просто и сердито) 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Попробую через FillChar 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Пишет - не хватает актуальных параметров 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Так смотри как я написал, или обратись к справке. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#10  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 скомпилировалось, но с массивом ничего не происходит 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#11  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 В отладке смотри его содержимое. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#12  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Ну получается массив с нулями, но он такой только в процедуре кнопки сброса. А если нажать на кнопку игрового поля, то будет снова старый массив. 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#13  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 В принципе я нашел выход с присовением каждой кнопке своего начального тега, но это не очень рационально. 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#14  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Как организован массив? 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#15  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Мне кажется, что там в принципе все неправльно. Массив надо описать в классе (тогда он доступен всем методам класса), а вот поле для игры делать кнопками - это "круто". Я бы делал на TPaintBox. Соотв, по координатам просто вычисляется клетка/ячейка массива. Отрисовка поля в OnPaint прямо по массиву (лучше сначала на Bitmap в памяти, а потом просто скопировать этот битмап на PaintBox - не будет дурацкого мерцания).  |