Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.03.2011, 08:30
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию panel

всем доброго времени суток...
у меня такой вопрос (на форме имеется много объектов типа :TPanel, стоящие рядом друг с другом как в крестиках ноликах (штук 30 допустим), и всем присвоено своество Color одим из 3-х случайных цветов... например (clRed, clBlue, clGreen)
как можно узнать есть ли на форме 3 или более панели стоящие рядом друг с другом (не по диогонали) одного цвета?
любые варианты (буквой Г, по горизонтали, по вертикали) ну главное что бы они были стояли друг с другом вплотную
как можно осуществить такую проверку? (есть ли такие панели, и если есть то покрасить в допустим цвет clGrey)
дайти хоть наводку
...
сам я вообще незнаю даже с чего начать и чем вообще пользоваться...
я так думаю записать всё в многомерный массив (каждый цет например имеет свой id) например: clBlue = 1, clRed = 2, clGreen = 3...
поле допустим размером 15x7... тоесть массив будет выглядить так...

132221233213122
322122122121211
311321331213322
223212213212211
112331123121133
321123312232321
213312213313213

красным отмечено то что нужно отследить... а как незнаю
__________________

Последний раз редактировалось eXplorer, 26.03.2011 в 09:21.
Ответить с цитированием
  #2  
Старый 29.03.2011, 19:10
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

помогите хоть чем-нибудь, люди добрые...
__________________
Ответить с цитированием
  #3  
Старый 29.03.2011, 21:53
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Использовать панели для данной задачи глупо, лучше взять один TPaintBox и вручную отрисовывать содержимое массива, это поможет избежать сотню проблем и приблизит к нормальному коду.

Ниже написал код, который используя рекурсию, ищет на поле все возможные соединения рядом стоящих элементов.

Думаю код прозрачный, все должно быть ясно, вариантов решения данной задачи, можно написать много, я по крайней мере о трех думал, но выбрал именно этот.

Последний раз редактировалось Asinkrit, 02.04.2011 в 20:23.
Ответить с цитированием
  #4  
Старый 30.03.2011, 12:09
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

спасибо большое попробую
__________________
Ответить с цитированием
  #5  
Старый 31.03.2011, 16:26
Janom Janom вне форума
Начинающий
 
Регистрация: 04.02.2011
Адрес: Москва
Сообщения: 148
Версия Delphi: 7
Репутация: 133
По умолчанию

Цитата:
Сообщение от eXplorer
помогите хоть чем-нибудь, люди добрые...
Может пригодится, вроде в тему...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:08.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter