Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2007-07-11 11:32:39 ЛС | профиль | цитата
Ну ладно, вернемся к нашим баранам
Имеется в виду - кодогенерация.
Состряпал невеликий примерчик для размышления: а имеем ли мы право "откладывать" вычисления данных потока до того момента, пока эти данные понадобятся
В Дельфи-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)
{
}
Для Дельфи-2 сделал такие коды методов
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

Вроде все очевидно и понятно, а работает неправильно
карма: 9

0