Имеется в виду - кодогенерация.
Состряпал невеликий примерчик для размышления: а имеем ли мы право "откладывать" вычисления данных потока до того момента, пока эти данные понадобятся
В Дельфи-1 схема такая:
Add(FileStream,6049437,287,84)
{
FileName="111.txt"
}
Add(DataToFile,15064033,287,133)
{
Type=7
link(onGet,15814735:doStrCat,[])
link(Stream,6049437:Stream,[])
}
Add(Button,13260222,154,84)
{
Left=140
Top=90
link(onClick,7313187:doEvent1,[])
}
Add(Hub,7313187,210,84)
{
OutCount=3
link(onEvent1,6049437:doOpen,[])
link(onEvent2,15064033:doGet,[(254,97)(254,146)])
link(onEvent3,6049437:doClose,[(264,104)(264,97)])
}
Add(StrCat,15814735,343,133)
{
link(onStrCat,6420786:doMessage,[])
link(Str1,15064033:Data,[(349,121)(332,121)(332,178)(293,178)])
}
Add(Message,6420786,399,133)
{
}
func doOpen(_data)
if(not isset(_St))
var(_St)
lang(St:PStream)
lng.decl_priv_var(St, 'PStream')
end
println(St, ' := NewReadFileStream(',FileName, ');')
end
func doClose(_data)
println(St, '.free;')
// TODO
end
func Stream()
return(St)
end
func doGet(_data)
event(onGet, Stream + '.ReadStr')
end
func Data()
return(Stream + '.ReadStr')
end
Вроде все очевидно и понятно, а работает неправильно