Вверх ↑
Этот топик читают: Гость
Ответов: 305
Рейтинг: 4
#1: 2010-09-16 03:21:09 ЛС | профиль | цитата
code_20621.txt
Хотел сделать так, чтобы при выполнении своей задачи в контейнере, он удалялся, а здесь он выводит ошибку:
Self destruction is not allowed !!!

В чём проблемма?
------------ Дoбавленo в 03.21:


Add(MultiElementEx,1102900,518,224)
{
link(onEvent2,15782146:doCalc,[(562,230)(562,254)(506,254)(506,279)])
link(onEvent3,2665022:doAdd,[])
}
BEGIN_SDK
Add(EditMultiEx,7219132,21,21)
{
WorkCount=#5:##add|8:##delete|
EventCount=#8:onEvent2|8:onEvent3|
VarCount=#7:##index|
Width=447
Point(##add)
Point(##delete)
Point(##index)
link(##add,3711283:doTimer,[(91,27)(91,62)])
}
Add(Timer,3711283,161,56)
{
Interval=700
Enable=1
link(onTimer,1071968:doEvent1,[])
}
Add(Hub,1071968,217,56)
{
OutCount=3
link(onEvent1,3711283:doStop,[(243,62)(243,44)(149,44)(149,69)])
link(onEvent2,7219132:onEvent2,[(276,69)(276,27)])
link(onEvent3,7378321:doNext,[(294,76)(294,69)])
}
Add(Counter,7378321,357,63)
{
Max=99999
link(onNext,7219132:onEvent3,[(429,69)(429,34)])
}
END_SDK
Add(Button,12151879,385,224)
{
Left=110
Top=40
link(onClick,1898206:doEvent1,[])
}
Add(Hub,1898206,448,224)
{
InCount=2
OutCount=1
link(onEvent1,1102900:##add,[])
}
Add(Hub,15848140,406,266)
{
InCount=2
OutCount=3
link(onEvent1,1102900:##delete,[(469,272)(469,237)])
link(onEvent2,1898206:doEvent2,[(434,279)(434,237)])
link(onEvent3,11142997:doAdd,[(438,286)(438,300)])
}
Add(Memo,2665022,616,231)
{
Left=180
Top=5
Width=225
Height=280
}
Add(RichEdit,11142997,455,294)
{
Left=440
Top=20
Width=115
Height=380
}
Add(MathParse,15782146,518,273)
{
MathStr="%1 - 1"
link(onResult,15848140:doEvent2,[(562,279)(562,267)(394,267)(394,279)])
link(X1,1102900:##index,[])
}

Вот кое как сообразил, по логике, думаете норм??
карма: 0

0
файлы: 1code_20621.txt [1.5KB] [69]
Ответов: 301
Рейтинг: 11
#2: 2010-09-16 10:43:09 ЛС | профиль | цитата
на ##Delete надо подавать с верхнего хаба, так как нижний управляется событием из контейнера. (простите если коряво выразился - похмелье)
карма: 0

0
Ответов: 305
Рейтинг: 4
#3: 2010-09-16 17:07:07 ЛС | профиль | цитата
evgenyatam, так я же так и сделал
карма: 0

0
Ответов: 582
Рейтинг: 3
#4: 2010-09-16 17:51:30 ЛС | профиль | цитата
Кстати дИнамическая
карма: 0

0
Ответов: 305
Рейтинг: 4
#5: 2010-09-16 22:14:11 ЛС | профиль | цитата
ruzik, ага, буду знать. Если ещё ты мне подсказал мне на счет схемы, было бы вообще отлично
карма: 0

0
Ответов: 498
Рейтинг: 39
#6: 2010-09-16 22:20:17 ЛС | профиль | цитата
Вставь паузу перед удалением.
------------ Дoбавленo в 22.20:
Add(MultiElementEx,1102900,462,56)
{
link(onEvent2,15782146:doCalc,[(506,62)(506,86)(450,86)(450,111)])
link(onEvent3,2665022:doAdd,[])
}
BEGIN_SDK
Add(EditMultiEx,7219132,21,21)
{
WorkCount=#5:##add|8:##delete|
EventCount=#8:onEvent2|8:onEvent3|
VarCount=#7:##index|
Width=447
Point(##add)
Point(##delete)
Point(##index)
link(##add,3711283:doTimer,[(91,27)(91,62)])
}
Add(Timer,3711283,161,56)
{
Interval=700
Enable=1
link(onTimer,1071968:doEvent1,[])
}
Add(Hub,1071968,217,56)
{
OutCount=3
link(onEvent1,3711283:doStop,[(243,62)(243,44)(149,44)(149,69)])
link(onEvent2,7219132:onEvent2,[(276,69)(276,27)])
link(onEvent3,7378321:doNext,[(294,76)(294,69)])
}
Add(Counter,7378321,357,63)
{
Max=99999
link(onNext,7219132:onEvent3,[(429,69)(429,34)])
}
END_SDK
Add(Button,12151879,238,56)
{
Left=110
Top=40
link(onClick,1898206:doEvent1,[])
}
Add(Hub,1898206,301,56)
{
InCount=2
OutCount=1
link(onEvent1,1102900:##add,[])
}
Add(Hub,15848140,259,98)
{
InCount=2
OutCount=3
link(onEvent1,16044162:doTimer,[(322,104)(322,69)])
link(onEvent2,1898206:doEvent2,[(287,111)(287,69)])
link(onEvent3,11142997:doAdd,[(291,118)(291,132)])
}
Add(Memo,2665022,560,63)
{
Left=180
Top=5
Width=225
Height=280
}
Add(RichEdit,11142997,308,126)
{
Left=440
Top=20
Width=115
Height=380
}
Add(MathParse,15782146,462,105)
{
MathStr="%1 - 1"
link(onResult,15848140:doEvent2,[(499,111)(499,99)(247,99)(247,111)])
link(X1,1102900:##index,[])
}
Add(Timer,16044162,392,63)
{
Interval=1
Enable=1
AutoStop=1
link(onTimer,1102900:##delete,[])
}


или делай в отдельном потоке.
карма: 0

0
Ответов: 305
Рейтинг: 4
#7: 2010-09-16 22:24:56 ЛС | профиль | цитата
Muz-Tv, это только частично помогает, ставил паузу на 110 млс
И да, мне пауза в убыток идёт
------------ Дoбавленo в 22.22:
щя.. ..
------------ Дoбавленo в 22.24:


Add(MainForm,2953706,21,105)
{
Width=405
Height=393
}
Add(MultiElementEx,1102900,553,189)
{
link(onEvent2,15782146:doCalc,[(597,195)(597,275)(541,275)(541,300)])
link(onEvent3,2665022:doAdd,[(618,202)(618,258)])
}
BEGIN_SDK
Add(EditMultiEx,7219132,21,21)
{
WorkCount=#5:##add|8:##delete|
EventCount=#8:onEvent2|8:onEvent3|
VarCount=#7:##index|
Width=447
Point(##add)
Point(##delete)
Point(##index)
link(##add,3711283:doTimer,[(91,27)(91,62)])
}
Add(Timer,3711283,161,56)
{
Interval=700
Enable=1
link(onTimer,1071968:doEvent1,[])
}
Add(Hub,1071968,217,56)
{
OutCount=3
link(onEvent1,3711283:doStop,[(243,62)(243,44)(149,44)(149,69)])
link(onEvent2,7219132:onEvent2,[(276,69)(276,27)])
link(onEvent3,7378321:doNext,[(294,76)(294,69)])
}
Add(Counter,7378321,357,63)
{
Max=99999
link(onNext,7219132:onEvent3,[(429,69)(429,34)])
}
END_SDK
Add(Button,12151879,329,189)
{
Left=5
Top=335
Caption="начать"
link(onClick,1898206:doEvent1,[])
}
Add(Hub,1898206,392,189)
{
InCount=2
OutCount=1
link(onEvent1,15402246:doFor,[(427,195)(427,174)])
}
Add(Hub,15848140,350,287)
{
InCount=2
OutCount=3
link(onEvent1,16044162:doTimer,[(413,293)(413,258)])
link(onEvent2,1898206:doEvent2,[(378,300)(378,202)])
link(onEvent3,11142997:doAdd,[(382,307)(382,321)])
}
Add(Memo,2665022,651,252)
{
Left=10
Top=5
Width=225
Height=280
ScrollBars=3
}
Add(RichEdit,11142997,399,315)
{
Left=240
Top=5
Width=115
Height=280
ScrollBars=3
}
Add(MathParse,15782146,553,294)
{
MathStr="%1 - 1"
link(onResult,15848140:doEvent2,[(590,300)(590,288)(338,288)(338,300)])
link(X1,1102900:##index,[])
}
Add(Timer,16044162,483,252)
{
Interval=1
Enable=1
AutoStop=1
link(onTimer,1102900:##delete,[(534,258)(534,202)])
}
Add(Edit,16150472,455,119)
{
Left=5
Top=305
Width=120
Text="3"
}
Add(For,15402246,448,168)
{
End=5
link(onEvent,1102900:##add,[(516,174)(516,195)])
link(End,16150472:Text,[])
}
Add(Label,329326,259,336)
{
Left=130
Top=305
Width=45
Height=17
Caption="потоков"
}

А так?
-
И ещё вопрос появился. Почему он не по 3 добавляет, а больше со временем? когда я ставлю 3 потока
карма: 0

0
Ответов: 498
Рейтинг: 39
#8: 2010-09-16 22:28:13 ЛС | профиль | цитата
mmmmm, вот так
code_20630.txt
карма: 0

0
файлы: 1code_20630.txt [1.5KB] [144]
Разработчик
Ответов: 26324
Рейтинг: 2148
#9: 2010-09-16 22:35:51 ЛС | профиль | цитата
mmmmm, а ты более внятно можешь объяснить что должна делать твоя схема и что делает таймер внутри мультика
------------ Дoбавленo в 22.30:
Muz-Tv, и чем это сильно отличается от таймера в данном применении
Как можно помогать чем-то, не зная как оно должно работать
------------ Дoбавленo в 22.35:
mmmmm, кстати, такое сообщение динамический мультик выдает тогда, когда его пытаются удалить из самого себя, те, из одной очереди событий. Вот для чего и применяют таймеры, событие дается на запуск таймеру и продолжается выполнение следующих событий до окончания всех в одной очереди. Как правило, таймер срабатывает тогда, когда события уже закончились и управление уже передано системе или ушло в другую степь, совсем не связанную с текущим контейнером
карма: 22

0
Ответов: 305
Рейтинг: 4
#10: 2010-09-17 00:22:49 ЛС | профиль | цитата
nesco,

Вот я и передавал событие из контейнера хабу (оказывается не сработало ). Буду тогда ставить таймер на 1млс или что нибуть в этом роде.
nesco писал(а):
mmmmm, а ты более внятно можешь объяснить что должна делать твоя схема и что делает таймер внутри мультика

Схему внутри контейнера я сам придумал, (пусть там будет любая другая схема), я просто хотел понять всю соль мультика

И ещё вопрос. Как сделать так, чтобы это происходило в несколько потоков, чтоб не по одному символу кидалось, а по несколько?
code_20637.txt
карма: 0

0
файлы: 1code_20637.txt [1.7KB] [153]
Разработчик
Ответов: 26324
Рейтинг: 2148
#11: 2010-09-17 00:54:30 ЛС | профиль | цитата
mmmmm, вот скажи -- нафиг вот это


Add(Timer,15499642,273,196)
{
Interval=1
Enable=1
link(onTimer,12836717:doEvent1,[])
}
Add(Hub,12836717,322,196)
{
link(onEvent1,15499642:doStop,[(348,202)(348,206)(261,206)(261,209)])
}
когда достаточно вот такого


Add(Timer,4267186,329,427)
{
Interval=1
Enable=1
AutoStop=1
}
карма: 22

0
Ответов: 305
Рейтинг: 4
#12: 2010-09-17 22:40:37 ЛС | профиль | цитата
Это привычка осталась с того момента, как начал изучать hiasm
Так же как вместо Memory использовать Edit (но от этой отучился недавно)
------------ Дoбавленo в 16.03:
Так как сделать, чтоб было в несколько потоков:

Add(MultiElementEx,1102900,518,259)
{
link(onEvent2,15782146:doCalc,[(562,265)(562,289)(506,289)(506,314)])
link(onEvent3,2665022:doAdd,[])
}
BEGIN_SDK
Add(EditMultiEx,7219132,21,21)
{
WorkCount=#5:##add|8:##delete|
EventCount=#8:onEvent2|8:onEvent3|
VarCount=#7:##index|
Width=447
Point(##add)
Point(##delete)
Point(##index)
link(##add,3711283:doTimer,[(91,27)(91,62)])
}
Add(Timer,3711283,161,56)
{
Interval=700
Enable=1
link(onTimer,1071968:doEvent1,[])
}
Add(Hub,1071968,217,56)
{
OutCount=3
link(onEvent1,3711283:doStop,[(243,62)(243,44)(149,44)(149,69)])
link(onEvent2,7219132:onEvent2,[(276,69)(276,27)])
link(onEvent3,7378321:doNext,[(294,76)(294,69)])
}
Add(Counter,7378321,357,63)
{
Max=99999
link(onNext,7219132:onEvent3,[(429,69)(429,34)])
}
END_SDK
Add(Button,12151879,294,259)
{
Left=10
Top=40
Caption="начать"
Data=String(67)
link(onClick,1898206:doEvent1,[])
}
Add(Hub,1898206,357,259)
{
InCount=2
OutCount=1
link(onEvent1,1102900:##add,[])
}
Add(Hub,15848140,315,301)
{
link(onEvent1,1102900:##delete,[(423,307)(423,272)])
link(onEvent2,1898206:doEvent2,[(343,314)(343,272)])
}
Add(Memo,2665022,616,266)
{
Left=80
Top=5
Width=225
Height=280
ScrollBars=3
}
Add(MathParse,15782146,518,308)
{
MathStr="%1 - 1"
link(onResult,15499642:doTimer,[(561,314)(561,399)(169,399)(169,300)])
link(X1,1102900:##index,[])
}
Add(Timer,15499642,196,294)
{
Interval=1
Enable=1
link(onTimer,12836717:doEvent1,[])
}
Add(Hub,12836717,245,294)
{
link(onEvent1,15499642:doStop,[(271,300)(271,304)(184,304)(184,307)])
link(onEvent2,15848140:doEvent1,[])
}


?
------------ Дoбавленo в 22.40:
а?


карма: 0

0
12
Сообщение
...
Прикрепленные файлы
(файлы не залиты)