Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 179
от 14.07.2005, 15:40

Администратор:Калашников О.А.
В рассылке:Подписчиков: 218, Экспертов: 33
В номере:Вопросов: 1, Ответов: 4


Вопрос № 23232: Господа, у меня такой вопрос: есть StringGrid, размером ~59х59 (без FixedCols без FixedRows), во все ячейки StringGridа генерируются, по Timerу (интервал 0,5 с) случайные числа (от 1 до 100). Все это работает, т.е. каждые 0,5с числа генерируются и им...

Вопрос № 23.232
Господа, у меня такой вопрос: есть StringGrid, размером ~59х59 (без FixedCols без FixedRows), во все ячейки StringGridа генерируются, по Timerу (интервал 0,5 с) случайные числа (от 1 до 100). Все это работает, т.е. каждые 0,5с числа генерируются и ими заполняется StringGrid. Проблема вот в чем:
Как мне сделать так, чтобы после того, как числа сгенерированы в StringGrid, производилась проверка каждого числа на четность, и если число четно, то эта ячейка StringGridа становится, к примеру, красного цвета, и в эту ячейку больше ничего не генерируется, но в остальные ячейки генерирование продолжается. И так до тех пор, пока все ячейки не будут заполнены четными числами (и соответственно, все ячейки будут красным цветом).
Меня, в частности, интересует: как поймать "четную ячейку", сделать ее красной, "заморозить" ее, т.е. чтобы в нее больше ничего не генерировалось.
Жду и надеюсь на ваши советы.
Отправлен: 08.07.2005, 17:05
Вопрос задал: Arman1982 (статус: Посетитель)
Всего ответов отправлено: 4

Отвечает: Jadd
Здравствуйте, Arman1982!
Первое, что пришло в голову - сделать массив сообтветствий. Т.е. массив будет содержать информацию о четных ячейках. Пусть это будет двумерный массив типа Boolean, в котором все значения будут false, а четные - true. Чем не вариант? И потом, прежде, чем вставлять значение, проверить этот самый массив. Пусть количество строк и столбцов в массиве соответствуют столбцам и колонкам StringGrid'а. Чем не решение?
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 08.07.2005, 17:33

Отвечает: Полищук Владислав Игоревич
Здравствуйте, Arman1982!
У StringGrid'a есть свойство Objects - это массив объектов, которые сопоставляются с ячейками. Там можно хранить признак четности, который, будет определятся при занесении числа в ячекйу. А дальше - где есть признак четности - рисуем красным, где - нет генерируем новое число. Красный цвет, если не ошибаюсь, можно задать путем присвоения свойству Font, нужного цвета перед выводом в ячейку ( только потом его надо опять сделать черным)
---------
Чтобы вчера не случилось, радуйся новому дню
Ответ отправил: Полищук Владислав Игоревич (статус: 1-ый класс)
Отправлен: 08.07.2005, 18:55

Отвечает: Ерёмин Андрей
Здравствуйте, Arman1982!
На чётность число проверяем с помощью функции Odd(). Чтобы рисовать ячейку другим цветом, используем событие OnDrawCell у TStringGrid. В приложении исходный код основного модуля проекта. Проверено: работает :) Удачи!

Приложение:

---------
Если б не было бы глюка, жизнь была б такая скyка...

Ответ отправил: Ерёмин Андрей (статус: Студент)
Отправлен: 08.07.2005, 18:57

Отвечает: Denisss
Здравствуйте, Arman1982!
В приложении указан приблизительный пример того, как это можно реализовать...
Начало происходит по нажатию на кропку Button3, при этом, чтобы не было случайного повторного нажатия, она отключается сразу после ее нажатия и включается после заполнения всего грида.
В принципе, в приложении есть несколько недоработок (ну, например, вдруг у пользователя цвет окна красный или цвет текста такой, что на красном его сложно различить, тогда уж придется переписывать код), но я сделал основу, остальное за Вами...

Приложение:

Ответ отправил: Denisss (статус: 9-ый класс)
Отправлен: 08.07.2005, 19:03


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Отписаться
Вспомнить пароль

В избранное