Вверх ↑
Этот топик читают: Гость
Ответов: 189
Рейтинг: 4
#1: 2010-05-24 07:22:52 ЛС | профиль | цитата
У меня случилась проблема, необходим копонент (или контейнер) работающий так.

Входы
1 вход, для создания-изменения переменной.
(если отправить сигнал "21.4" то в памяти создаётся параметр 21 со значением 4,
но после этого, при сигнале "21.8" значение 4 МЕНЯЕТСЯ на 8)
2 запрос значения у параметра.

Выход:
1 выдача значения от запроса.
(при входе запроса если 21, то выдает 8 (от прошлого примера))
карма: 0

0
Ответов: 4641
Рейтинг: 334
#2: 2010-05-24 07:38:56 ЛС | профиль | цитата
KisL()R()[), для этого новый компонент не нужен. Достаточно обычных знаний HiAsm
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 189
Рейтинг: 4
#3: 2010-05-24 07:41:27 ЛС | профиль | цитата
Я могу сделать это, однако с ограниченными переменными
------------ Дoбавленo в 07.41:
чтоб по ходу игры добавлялись надо
карма: 0

0
Ответов: 5446
Рейтинг: 323
#4: 2010-05-24 08:55:17 ЛС | профиль | цитата
KisL()R()[), да пожалуйста, сколько угодно (на сколько памяти хватит). Компоненты: StrPart + IntegerArray + ArrayRW. Для красоты можно в MultiElementEx упаковать.
карма: 1

0
Ответов: 189
Рейтинг: 4
#5: 2010-05-24 09:26:49 ЛС | профиль | цитата
ухты, а массивы это клёво.

тема закрыта
------------ Дoбавленo в 09.26:
хотя почему-то не работает

Add(IntegerArray,4973344,392,168)
{
IntArray=[]
}
Add(ArrayRW,2998957,245,182)
{
link(onRead,9410648:doText,[(289,188)(289,251)(128,251)(128,314)])
link(Array,4973344:Array,[(251,170)(325,170)(325,212)(398,212)])
link(Index,959917:Part1,[(258,132)(307,132)])
link(Value,959917:Part2,[(265,132)(314,132)])
}
Add(Button,4694490,168,217)
{
Left=5
Top=10
Caption="in"
link(onClick,2998957:doWrite,[(212,223)(212,216)(238,216)(238,195)])
}
Add(Edit,10563071,105,28)
{
Left=65
Top=10
link(onChange,959917:doSplit,[(219,34)(219,55)])
}
Add(Button,11929133,63,210)
{
Left=5
Top=35
Caption="out"
link(onClick,2998957:doRead,[(170,216)(170,188)])
}
Add(Label,9410648,140,308)
{
Left=65
Top=35
Caption="0"
}
Add(MultiStrPart,959917,301,49)
{
Char="."
Direct=1
link(Str,10563071:Text,[(307,37)(209,37)(209,72)(111,72)])
}


карма: 0

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#6: 2010-05-24 10:20:38 ЛС | профиль | цитата
KisL()R()[) писал(а):
хотя почему-то не работает

А массив, дядя будет заполнять doRead и doWrite работают с, уже существующим, массивом. А добавлять-то значения надо по doAdd, или считывать их по doLoad из сохраненного файла, или заполнять на этапе разработки, перед тем, как с ними работать
карма: 22

0
Ответов: 189
Рейтинг: 4
#7: 2010-05-24 10:29:21 ЛС | профиль | цитата
да я пробовал это, да как сделать чтоб он сначала заполнял, а потом работал
------------ Дoбавленo в 10.29:
p.s. поменяй doWrite на doAdd, ничего не изментися
------------ Дoбавленo в 10.38:
Хоть сразу оба
карма: 0

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#8: 2010-05-24 10:29:45 ЛС | профиль | цитата
А что, в справке нет примеров
карма: 22

0
Ответов: 189
Рейтинг: 4
#9: 2010-05-24 10:37:14 ЛС | профиль | цитата
а 100 ms таймер изменит ситуацию

code_18461.txt

Теперь можно почти бесконечное число параметров делать
карма: 0

0
файлы: 1code_18461.txt [1.7KB] [87]
Разработчик
Ответов: 26153
Рейтинг: 2127
#10: 2010-05-24 10:45:52 ЛС | профиль | цитата
Я никогда не видел задач, где нужно бесконечное количество параметров. Зачем это нужно
------------ Дoбавленo в 10.45:
Не проще ли использовать StrList для этой цели, где хранить номер параметра и его значение в упакованном виде
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#11: 2010-05-24 11:42:50 ЛС | профиль | цитата
KisL()R()[) писал(а):
почему-то не работает
А так ?
code_18462.txt
------------ Дoбавленo в 11.42:
KisL()R()[) писал(а):
Теперь можно почти бесконечное число параметров делать
(с) писал(а):
Жадность фраера губит

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_18462.txt [908B] [100]
Разработчик
Ответов: 26153
Рейтинг: 2127
#12: 2010-05-24 11:50:21 ЛС | профиль | цитата
Я тут поприкаловался на досуге Сделал на MT-Матрице

Параметры добавляются в любом порядке, как угодно и сколько угодно по нажатию клавиши Enter

YYYY.XXXX -- добавляет или изменяет параметра YYYY с выдачей перечитанного результата и соответствующим сообщением (добавление или изменение)
YYYY -- чтение параметра YYYY, в случае отсутствия, выдается сообщение об отсутствии

Пример расчитан на один параметр XXXX, но их в цепи может быть сколько угодно.

code_18463.txt
карма: 22

0
файлы: 1code_18463.txt [3.9KB] [127]
Ответов: 189
Рейтинг: 4
#13: 2010-05-24 12:01:00 ЛС | профиль | цитата
на mt ваще прикол.

у мя также как у тебя работало, однако не различало изменён или создан
карма: 0

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#14: 2010-05-24 12:04:21 ЛС | профиль | цитата
KisL()R()[), и ты там чего-нибудь понял
------------ Дoбавленo в 12.04:
Задача -- сделать то же самое, но на StrList-e
карма: 22

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#15: 2010-05-24 12:04:23 ЛС | профиль | цитата
Очень похоже на работу со словарём Dictionary во многих скриптовых языках.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)