Вверх ↑
Этот топик читают: Гость
Ответов: 3889
Рейтинг: 362
#16: 2011-08-06 16:35:40 ЛС | профиль | цитата
Леонид, в публикаторе давно лежит схема, где всё это давно реализовано на отдельных элементах вокруг ChangeMon. Речь не об этом. У нас уже есть ChangeMon, в нём уже есть необходимая логика, осталось добавить одну точку и несколько строчек для полноценного функционала. А пока там ветка неизменности данных ведёт в тупик. Раз уж сделан элемент, так легко заменяемый всего двумя другими, он должен хотя бы функционалом не уступать этим двум элементам (в идеале - вообще превосходить, чтобы полностью оправдывать своё существование).
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#17: 2011-08-06 16:41:57 ЛС | профиль | цитата
Леонид писал(а):
Интернет и форум МАТЬ-ПЕРЕМАТЬ!
мои соболезнования.
Леонид, а выложить любой файл на сторонний файлообменник не пробовали ?
------------ Дoбавленo в 16.41:
1nd1g0, как думаешь в том, что выложил 10755, нижняя точка нужна ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 3889
Рейтинг: 362
#18: 2011-08-06 17:19:43 ЛС | профиль | цитата
Tad писал(а):
нижняя точка нужна ?


Надо подумать, делал-то кто-то со своими мыслями. ИМХО, не такая полезная, как точки событий, реагирующих на начало иили прекращение изменения данных, но применение можно найти. Первое, что приходит в голову - если нескольким разным потокам нужно одновременно среагировать на изменения данных где-то (например, приостановить деятельность, пока идёт получение данных со стороны). Первый проверяет данные, остальные ждут, когда флаг снимется. Во-первых, быстрее, чем много сравнений каждым потоком; во-вторых, не придётся хранить множество копий данных для сравнения; наконец, снижается риск, что проверки разными процессами дадут разные результаты, и кто-то из них продолжить работать. Да и одновременный доступ к данным при сравнении разными потоками может быть чреват подводными камнями. Доступ к флагу на чтение выглядит менее опасным.

В общем, выигрыш в производительности и памяти при правильном построении схемы точка, в принципе, может дать. Считывать флаг всё-таки быстрее, чем сравнивать, и уж тем более - постоянно перемещать данные.

Лично мне показалась полезной точка события неизменности данных, вдобавок её настолько просто реализовать, что на ней я и акцентирую внимание, остальное исключительно на усмотрение властьимущих.
карма: 1

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#19: 2011-08-06 19:40:54 ЛС | профиль | цитата
1nd1g0 писал(а):
остальное исключительно на усмотрение властьимущих

Я так понимаю, что это в мою сторону закос, не прокатит. Вот придет Asassin, он все расставит на свои места. Nic, кстати, тоже имеет доступ. Пусть тоже принимают участие, че все ждут от меня каких-то кардинальных решений
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#20: 2011-08-06 19:46:24 ЛС | профиль | цитата
nesco, а я ждал твоего мнения об изменениях в кодах компонента, а ты опять ищешь врагов - кто в какую сторону закосил.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 3889
Рейтинг: 362
#21: 2011-08-06 19:50:08 ЛС | профиль | цитата
Вроде не предлагалось ничего кардинального, лишь после 41-й строчки в hiChangeMon.pas вставить ещё три (которые при желании упаковываются вообще в одну)

#pas
else begin
_hi_CreateEvent_(_Data,@_event_onNoData);
end
Одну - в декларации (строка 14 hiChangeMon.pas)

#pas
_event_onNoData:THI_Event;
и одну - в ini

#ini
onNoData=Событие происходит при совпадении данных из потока с данными в компоненте и выдает эти данные назад в поток|2|
карма: 1

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#22: 2011-08-06 20:10:01 ЛС | профиль | цитата
Tad писал(а):
а ты опять ищешь врагов - кто в какую сторону закосил

Да ничего я не ищу, больше мне делать нечего, я просто хочу, чтобы и другие поучаствовали в решении общих вопросов, а то все по кустам попрятались
------------ Дoбавленo в 20.10:
Tad писал(а):
я ждал твоего мнения об изменениях в кодах компонента

Я только к концу обсуждения понял чего надо-то. Это может добавить кто угодно, особых претензий я иметь не буду, если уж совсем не вмоготу без этой точки. У меня, к примеру, никогда не попадался случай, когда она мне была нужна вообще
карма: 22

1
Голосовали:1nd1g0
Ответов: 16884
Рейтинг: 1239
#23: 2011-08-06 20:18:52 ЛС | профиль | цитата
nesco писал(а):
У меня, к примеру, никогда не попадался случай, когда она мне была нужна вообще
У меня тоже.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8888
Рейтинг: 823
#24: 2011-08-06 20:23:24 ЛС | профиль | цитата
nesco писал(а):
никогда не попадался случай, когда она мне была нужна
Tad писал(а):
У меня тоже.
Остановка мыши и анализ, что же под ней
карма: 19

0
Ответов: 3889
Рейтинг: 362
#25: 2011-08-06 20:30:56 ЛС | профиль | цитата
nesco, ты её (точку) не брал в расчёт т.к. её не было. А теперь можно будет строить логику программ уже рассчитывая на неё. Идея плавала на поверхности давно, окончательно меня убедил miver с его примером цикла на основе ChangeMon (сейчас как раз в топе по рейтингу). В его схеме было простительно иметь тупиковый выход из цикла (вся схема и была этим циклом, цикл вызывался лишь однажды и данные со временем гарантированно переставали меняться). А вот при применении его и подобных ему идей в более сложных разработках... Вот тогда-то я явственно понял, что не так логически в этом несложном элементе. Тупиковая ветвь, если данные менялись - мы это знаем, а информацией об обратном расточительно пренебрегаем.

Ну и пресловутая реакция на началоконец изменений данных, про которую мы выше говорили - тоже не редко нужная вещь. С такой точкой реализация упрощается. До этого мы, например, не могли легко узнать, что срабатыванию onData в ChangeMon предшествовал долгий период несрабатывания. А на прекращение срабатывания так вообще очень трудно было среагировать. Всё это ограничивало использование столь потенциально полезного элемента, пока что ставшего причудливой экзотикой (раньше его мало кто брал в расчёт продумывая алгоритм схемы - сужу по наблюдениям).
карма: 1

0
Ответов: 1376
Рейтинг: 197
#26: 2011-08-07 13:17:23 ЛС | профиль | цитата
Tad писал(а):
нижняя точка нужна ?
Как средство для подглядывания (Для тестирования необходимо установить компонент от 10755)
code_24821.txt
карма: 1

0
файлы: 1code_24821.txt [1.6KB] [335]
Ответов: 3889
Рейтинг: 362
#27: 2011-08-07 14:56:28 ЛС | профиль | цитата
foksov, если им пользоваться, то лучше его слегка оптимизировать, в компоненте от 10755 лишняя 49-я строчка

#pas
_Dt := _Data;
присвоение заведомо совпадающих друг с другом данных. И назвать точки более логично (например, как в моём варианте )) )
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#28: 2011-08-07 16:17:51 ЛС | профиль | цитата
1nd1g0 писал(а):
И назвать точки более логично
onChange и onStopChange
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 3889
Рейтинг: 362
#29: 2011-08-07 16:18:37 ЛС | профиль | цитата
Tad, тогда придётся как отдельный элемент оформлять)
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#30: 2011-08-07 16:19:07 ЛС | профиль | цитата
1nd1g0, так ему и добавить Ex, а старый на пенсию и в дом престарелых
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)