Вверх ↑
Этот топик читают: Гость
Ответов: 1429
Рейтинг: 50
#1: 2010-06-14 13:59:35 ЛС | профиль | цитата
В максе было понятие "bang" (90% операций работы схем построено на нём)
Это когда елемент собрал (или содержит в себе) переменные, и ожидает событие bang, заставляющее его выполнить операцию или выдать свой результат в поток. Чем такое сделать?

Еще на это можно смотреть как на переменную, которая, по требованию, выдает сама себя в поток.

Вот простой пример:
code_18853.txt

Чем стукнуть елемент "память", чтобы он вытолкнул свое содержимое в поток, а не приянимал из потока новое значение? И чтобы это была не кнопка?
карма: 0

0
файлы: 1code_18853.txt [775B] [196]
Разработчик
Ответов: 26304
Рейтинг: 2146
#2: 2010-06-14 14:07:11 ЛС | профиль | цитата
login писал(а):
Чем стукнуть елемент "память", чтобы он вытолкнул свое содержимое в поток, а не приянимал из потока новое значение? И чтобы это была не кнопка?

А нафига что-то куда-то толкать, когда можно использовать нижние точки, а "толкать" элемент, который читает эту память
------------ Дoбавленo в 14.05:
Если значение памяти неменяемое, то можно использовать, в этом случае, точку doClear, тогда на выходе Memory появится дефолтное значение
------------ Дoбавленo в 14.07:
А вообще-то это делается вот так



Add(Button,6023718,308,315)
{
Left=40
Top=45
Caption="bang!"
Data=Integer(0)
link(onClick,10849245:doData,[])
}
Add(Memory,2215329,364,266)
{
Default=Integer(0)
}
Add(DoData,10849245,364,315)
{
link(Data,2215329:Value,[])
}


На выходе всегда будет значение, которое содержит Memory в текущий момент
карма: 22

0
Ответов: 1429
Рейтинг: 50
#3: 2010-06-14 14:18:12 ЛС | профиль | цитата
Замкнутый круг получается.
На приведенном примере следующий елемент "+" а чем его толкнуть? Чтобы он не принимал значения?
------------ Дoбавленo в 14.16:
Посмотрел Ваш пример. А чем инициировать пустой поток, чтобы не кнопкой?


------------ Дoбавленo в 14.18:
А! Все понял, точка doClear для этого подходит! Спасибо!
карма: 0

0
Разработчик
Ответов: 26304
Рейтинг: 2146
#4: 2010-06-14 14:19:52 ЛС | профиль | цитата
login, у нас все работает так, что -- если есть верхние точки или установлены свойства, то поток не читается и его значения элементу по-деревне. В остальных случаех, значения всегда будут читаться из потока. Отсюда, делай выводы
------------ Дoбавленo в 14.19:
login писал(а):
Все понял, точка doClear для этого подходит

Внимание! Это сработает только
nesco писал(а):
Если значение памяти неменяемое

При изменяемой памяти надо использовать DoData
карма: 22

0
Ответов: 1429
Рейтинг: 50
#5: 2010-06-14 14:29:34 ЛС | профиль | цитата
Блин, тогда это уже не "переменная", а "константа" получается.
Тогда возвращаемся к вопросу, а чем толкнуть елемент "+"?
------------ Дoбавленo в 14.29:
А, я Ваш пост невнимательно читал.
Можно чем угодно толкнуть. Содержимое игнорируется.
Спасибо!
карма: 0

0
Ответов: 1379
Рейтинг: 86
#6: 2010-06-14 14:30:08 ЛС | профиль | цитата
login, какой элемент "+"? Как он называется?
[offtop]Вообще что может быть непонятно?[/offtop]
------------ Дoбавленo в 14.30:
все, вопрос отпадает, login успел понять
карма: 0

0
Ответов: 1429
Рейтинг: 50
#7: 2010-06-14 14:48:13 ЛС | профиль | цитата
Тяжело учиться, а еще тяжелее переучиваться.
Настоящая ломка, от того, что я трансформирую "способы" реализации схем в разных средах.

------------ Дoбавленo в 14.48:
Вот работающий результат:

Add(MainForm,2953706,21,105)
{
Width=179
Height=154
}
Add(Button,6023718,63,105)
{
Left=20
Top=20
Caption="bang!"
Data=Integer(55)
link(onClick,7281699:doEvent1,[])
}
Add(Math,14820522,147,140)
{
Op2=1
link(onResult,8799326:doEvent2,[(213,146)(213,111)])
link(Op1,9492790:Value,[])
}
Add(Memory,9492790,147,63)
{
Default=Integer(0)
}
Add(Hub,7281699,112,105)
{
link(onEvent1,16290715:doClear,[])
link(onEvent2,14820522:doOperation,[(142,118)(142,146)])
}
Add(Memory,16290715,168,98)
{
Default=Integer(0)
link(onData,8799326:doEvent1,[])
}
Add(ListBox,1711733,252,98)
{
Left=85
Top=15
Width=60
}
Add(Hub,8799326,224,98)
{
InCount=2
OutCount=1
link(onEvent1,1711733:doAdd,[])
}



Спасибо!
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#8: 2010-06-14 14:55:24 ЛС | профиль | цитата
nesco писал(а):
Если значение памяти неменяемое, то можно использовать, в этом случае, точку doClear, тогда на выходе Memory появится дефолтное значение

nesco, нельзя такое советовать. Если "значение памяти неменяемое" использовать DoData и ничего кроме.
карма: 27
0
Ответов: 1429
Рейтинг: 50
#9: 2010-06-14 15:14:19 ЛС | профиль | цитата
Тогда вот правильный вариант:

code_18855.txt
карма: 0

0
файлы: 1code_18855.txt [787B] [208]
Разработчик
Ответов: 26304
Рейтинг: 2146
#10: 2010-06-14 15:47:48 ЛС | профиль | цитата
Dilma писал(а):
нельзя такое советовать

Гы. А на кой черт тогда у метода doClear есть событие onData
Но, вообще-то, я это тоже не считаю правильным, и сам стараюсь избегать этого
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#11: 2010-06-14 16:01:56 ЛС | профиль | цитата
nesco писал(а):
А на кой черт тогда у метода doClear есть событие onData

при чем тут это? Если следовать только такой логике, то можно для выдачи числа в поток советовать использовать, скажем, элемент Math
code_18858.txt
карма: 27
0
файлы: 1code_18858.txt [264B] [351]
Ответов: 1429
Рейтинг: 50
#12: 2010-06-14 16:55:33 ЛС | профиль | цитата

Скажите, пожалуйста, какой максимальный размер у массива "IntegerArray"?

(Извините, наверное, мне прийдется по многим елементам это спрашивать, в hiasm 5 наверное можно проставить в хелпе числа, в максе в конце хелпов к елементу есть его "пределы работы")
карма: 0

0
Разработчик
Ответов: 26304
Рейтинг: 2146
#13: 2010-06-14 17:01:58 ЛС | профиль | цитата
Dilma писал(а):
использовать, скажем, элемент Math

Ну это уж слишком, я бы и не додумался до такого извращения
карма: 22

0
Ответов: 1429
Рейтинг: 50
#14: 2010-06-14 17:55:11 ЛС | профиль | цитата
Так, какой максимальный размер у массива "IntegerArray"?
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#15: 2010-06-14 18:09:35 ЛС | профиль | цитата
login писал(а):
в hiasm 5 наверное можно проставить в хелпе числа, в максе в конце хелпов к елементу есть его "пределы работы")

это бессмыслено, т.к. ограничений существует всего два - размер оперативной памяти компьютера(чаще всего), верхний предел значения целого числа (2^31 для знакового и 2^32 для беззнакового). Других ограничений нет.
карма: 27
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)