|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.08.2012, 12:13 | #1 |
Форумчанин
Регистрация: 06.09.2008
Сообщений: 156
|
Подсчет элементов в StringGrid
Доброго времени суток!
Возникла следующая проблема: Необходимо подсчитать количество элементов в StringGrid за исключением областей, заданных в массиве TRect Код:
Ужас, как я устал от тупизны...
Последний раз редактировалось rainbow; 06.08.2012 в 12:17. |
06.08.2012, 12:42 | #2 |
Homo Interneticus
Форумчанин
Регистрация: 04.03.2011
Сообщений: 611
|
Операция логического умножения (and) будет давать ложь если один из аргументов ложь.
Ложь = 0, Истина = 1 Умножить что угодно на 0 будет 0 По логике i не может быть одновременно и меньше massivobj[k].Left и больше massivobj[k].Right и т.п. (хотя что именно Вы туда занесли - мне не ведомо) Почитайте про логические операции в Delphi, булеву алгебру и правильно составьте условие для проверки. Upd Кстати переменную цикла b может всё же стоит использовать где-нибудь... Последний раз редактировалось astecenko; 06.08.2012 в 12:44. |
06.08.2012, 12:46 | #3 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
а также
Код:
программа — запись алгоритма на языке понятном транслятору
|
06.08.2012, 14:39 | #4 | |
Форумчанин
Регистрация: 06.09.2008
Сообщений: 156
|
Спасибо за советы.
Сделал так: Цитата:
Ужас, как я устал от тупизны...
|
|
06.08.2012, 15:07 | #5 |
Homo Interneticus
Форумчанин
Регистрация: 04.03.2011
Сообщений: 611
|
А накрутили то :-D
Так не проще? Код:
|
06.08.2012, 15:43 | #6 | |
Форумчанин
Регистрация: 06.09.2008
Сообщений: 156
|
Цитата:
Работает при k=1 из за того, что программа суммирует счетчик s на каждую область (или элемент TRect) отдельно, необходимо сделать, чтобы это условие проверялось на весь массив TRect целиком а не только на текущий элемент b. Только как это сделать, пока в голову не приходит.
Ужас, как я устал от тупизны...
|
|
06.08.2012, 15:50 | #7 |
Homo Interneticus
Форумчанин
Регистрация: 04.03.2011
Сообщений: 611
|
Области в массиве TRect могут пересекаться?
|
06.08.2012, 16:07 | #8 |
Форумчанин
Регистрация: 06.09.2008
Сообщений: 156
|
Да, могут. Я вот и думаю как сделать. Пока ничего в голову не приходит, кроме как сделать двухмерный массив типа boolean размером StringGrid1.ColCount-1 на StringGrid1.RowCount-1, записать в него все значения true потом прогуляться по нему, и записать false там где эти области должны быть (или наоборот) и потом подсчитать количество элементов со значением true (или false), но это как то не очень хорошо получится.
Ужас, как я устал от тупизны...
|
06.08.2012, 16:16 | #9 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 06.08.2012 в 16:20. |
07.08.2012, 07:02 | #10 | |
Форумчанин
Регистрация: 06.09.2008
Сообщений: 156
|
Цитата:
Придется видимо через массив типа boolean делать. Сделал так: Код:
Ужас, как я устал от тупизны...
Последний раз редактировалось rainbow; 07.08.2012 в 08:42. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подсчет элементов массива | manoichi | Общие вопросы C/C++ | 1 | 09.01.2012 23:02 |
подсчет элементов в массиве | счастливая | Помощь студентам | 1 | 17.05.2010 19:11 |
Подсчет ячеек определенного цвета в StringGrid | Juliya_U | Компоненты Delphi | 4 | 22.04.2010 22:39 |
Подсчет количества цифр и их занесение в StringGrid | artemavd | Общие вопросы Delphi | 4 | 27.12.2009 20:55 |