Galkov писал(а):
Ну расскажи тогда, чего знает элемент StrCat в вышеприведенном примере StrCat в приведенном примере знает, что его внутренняя переменная может меняться в любое время за счет того, что присутствует и считывание и запись.
Galkov писал(а):
Можно ли конкретно в однопроходном варианте предложить схему для разрешения этого конфликта именно в этом примерчике, с двумя StrCat..да. Схему уже описал выше:
1) Верхний StrCat выдает данные с нижней точки с признаком Volatile
2) Hub перед трансляцией данных на правые точки проверяет наличие этого признака
3) если признак есть, то данные в хабе буферизируются
4) в итоге получаем код:
procedure onClick();
begin
hub_data := s1 + 55;
s1 := hub_data + 222;
Message(hub_data);
end;
то, что это защита от дурака взамен качества - я понимаю прекрасно. Конечно же нужно иметь счетчики использований и присваиваний для выполнения тех же самых операций, но в самих элементах, пораждающих такие данные.