Вверх ↑
Этот топик читают: Гость
Ответов: 11
Рейтинг: 0
#1: 2020-03-05 12:13:17 ЛС | профиль | цитата

Add(MainForm,2953706,21,105)
{
link(onCreate,14393025:doFor,[(177,125)(177,377)])
}
Add(MultiElementEx,11796973,378,371)
{
Mode=2
}
BEGIN_SDK
Add(EditMultiEx,4259651,21,21)
{
WorkCount=#5:##add
VarCount=#7:##count|
Width=895
Height=599
Point(##add)
Point(##count)
link(##add,13916964:doFor,[(81,27)(81,62)])
}
Add(For,13916964,140,56)
{
End=1000
}
END_SDK
Add(For,14393025,301,371)
{
End=100
link(onEvent,11796973:##add,[])
}
Add(Timer,3249545,322,441)
{
link(onTimer,6582004:doText,[])
}
Add(Label,6582004,378,441)
{
Left=35
Top=45
link(Text,11796973:##count,[])
}

И чего это он? Как было 101 схема так и осталась, хотя должны были все удалиться.
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Разработчик
Ответов: 26066
Рейтинг: 2120
#2: 2020-03-05 14:08:09 ЛС | профиль | цитата
CrazyNeron писал(а):
Как было 101 схема так и осталась, хотя должны были все удалиться.

В описании же ясно написано
OnlyOnce - создание копии схемы при вызове любого метода и уничтожение её при завершении работы этого метода
Те приблизительно это работает вот так
Схема

Add(MainForm,1523751,273,147)
{
link(onCreate,11796973:doFor,[])
}
Add(MultiElementEx,11796973,350,161)
{
Mode=2
link(onText,14902367:doText,[])
}
BEGIN_SDK
Add(EditMultiEx,4259651,21,21)
{
WorkCount=#5:doFor|0:|
EventCount=#6:onText|
VarCount=#7:##count|
Width=895
Height=599
Point(##count)
link(doFor,13916964:doFor,[(130,27)(130,62)])
}
Add(For,13916964,210,56)
{
End=1000
link(onStop,1760215:doText,[])
}
Add(VisualStrings,1760215,280,63)
{
Lines=#12:End Of Cycle|
Width=95
Point(doText)
Point(onText)
link(onText,4259651:onText,[(382,69)(382,27)])
}
END_SDK
Add(Timer,3249545,273,231)
{
link(onTimer,6582004:doText,[])
}
Add(Label,6582004,350,231)
{
Left=35
Top=65
link(Text,11796973:##count,[])
}
Add(Label,14902367,420,161)
{
Left=30
Top=20
Width=100
}

Заметь, что после выполнения цикла внутри контейнера и выдачи сообщения, он удалился.

Редактировалось 1 раз(а), последний 2020-03-05 14:10:02
карма: 22

0
Ответов: 11
Рейтинг: 0
#3: 2020-03-05 16:11:25 ЛС | профиль | цитата
Всё равно не очень понимаю, то есть обязательно должен быть выход из схемы или что?
карма: 0

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#4: 2020-03-05 16:58:41 ЛС | профиль | цитата
CrazyNeron писал(а):
то есть обязательно должен быть выход из схемы или что?

Нет, не выход, выход там для наглядности, что схема работает. Те контейнер создается при обращении к любому методу (но не контейнерному, тип ##add), направленного внутрь контейнера и уничтожается, когда вся схема внутри контейнера отработает.

Редактировалось 1 раз(а), последний 2020-03-05 16:59:53
карма: 22

0
Ответов: 11
Рейтинг: 0
#5: 2020-03-05 17:42:42 ЛС | профиль | цитата
Ааааа всё понял сори, я тупой )

--- Добавлено в 2020-03-05 17:44:50

А внутри контейнера запускать поток можно? Вообще имеет ли это смысл?

Редактировалось 1 раз(а), последний 2020-03-05 17:44:50
карма: 0

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#6: 2020-03-05 19:57:47 ЛС | профиль | цитата
CrazyNeron писал(а):
А внутри контейнера запускать поток можно?

Да можно, но только не в режиме контейнера OnlyOnce, и с обязательным отслеживанием полного завершения потока перед уничтожением контейнера.
карма: 22

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