Показать сообщение отдельно
  #2  
Старый 25.02.2015, 19:50
phomm phomm вне форума
Новичок
 
Регистрация: 07.10.2013
Адрес: Тюмень
Сообщения: 50
Версия Delphi: 7/2007/XE+/FPC
Репутация: 22
По умолчанию

Код:
for I := 0 to ComponentCount - 1 do
  if Components[i] is TShape then
    if {условие} then
      TShape(Components[i]).Color := clMoneyGreen
    else
      TShape(Components[i]).Color := clLime;
Примерно так (условие тоже в цикл перенёс, т.к. это тоже некрасиво и неправильно, когда для проверки условия вы делаете 2 цикла)
а ещё лучше если Вы эти шейпы нагенерировали (поиск: динамическое создание компонентов), и сложили в некий контейнер, например массив, и пробегаться в цикле надо будет только по нему, а не по свойству-массиву формы для компонентов, коих может быть много левых.

Что пишете ? если игру или какую динамическую графику, то лучше сразу откажитесь от шейпов и переходите на записи/объекты с прорисовкой на канвас.
Ответить с цитированием