Лекс Айрин писал(а):Alex2013, ХайАсм изначально строится как аналог высокоуровневых языков управления техпроцессами. То есть, ограниченное количество связей, вход четко соответствует выходу и пр. в том же духе.
В принципе верено но сильно сомневаюсь что автор изначально планировал такую заумь творить ... Ты смотрел в код что генерирует хайсам на паскале ? Там четком видно что никаких далеко идущих планов изначально не было...  Практически весь код одно уровневой  схемы запрятан в TClassMainForm_XXXXXXX.Create; (Если есть несколько уровней то это полная копия структуры только например в TClassChildFormEx_XXXXXXX.Create; )  В принципе ничто не мешало вообще  все в один файл запихать . ВСЕ и никаких тебе методов обработки событий....
Но еще интереснее код элементов 
- Код: Выделить всё
- unit hiRGB;
 
 interface
 
 uses Kol,Share,Debug;
 
 type
 THIRGB = class(TDebug)
 private
 FColor:TColor;
 public
 _prop_R:integer;
 _prop_G:integer;
 _prop_B:integer;
 
 _data_B:THI_Event;
 _data_G:THI_Event;
 _data_R:THI_Event;
 _event_onRGB:THI_Event;
 
 procedure _work_doRGB(var _Data:TData; Index:word);
 procedure _var_Color(var _Data:TData; Index:word);
 end;
 
 implementation
 
 procedure THIRGB._work_doRGB;
 var r,g,b:byte;
 begin
 r := ReadInteger(_Data,_data_R,_prop_R);
 g := ReadInteger(_Data,_data_G,_prop_G);
 b := ReadInteger(_Data,_data_B,_prop_B);
 FColor := r + g shl 8 + b shl 16;
 _hi_CreateEvent(_Data,@_event_onRGB,integer(FColor));
 end;
 
 procedure THIRGB._var_Color;
 begin
 dtInteger(_data,FColor);
 end;
 end.
 
Не правда ли забавно ?
Вот она точка doRGB а вот вход onRGB и читаем данные с верхних точек (или значения из начальных установок )...  
а нижняя Color просто читает внутреннюю переменную  ...  
Графическая же среда программирования это скорее развитие линии формошлепство, но на более высоком уровне, когда в граф превращается любой более-менее структурированный элемент. 
Опять же реальная философия ХайАсма еще проще, но нужно отметить, что ХайАсма  совершенно непривязан к формам да в среде  есть совершенно обычный  редактор форм, но он значительно  более  вспомогательный чем в лазарусе ( В принципе даже я писал/рисовал программы на хайасме  где несмотря на развитый интерфейс мне ни разу не понадобилось туда заходить ... Как? Просто! Динамическая генерация относительные координаты + разнообразные  выравнивания ...  )  Да и вообще  в хайасме даже можно консольные приложения делать ...(куда уж дальше от "формошлепства"...)
Да я понял что ты не много другое имеешь в виду ... но некоторые методики  доступные в ХайАсме  
в принципе не реализуются в "не графической среде" программирования (Например "МТ потоки" или динамические мультиэлементы (как минимум в таком виде точно нигде ничего подобного не встретишь  )     
То есть, сначала можно в проге быстренько набрать схему, а потом ее постепенно структурировать до элементарных конструкций. В идеале, вплоть до бинарного кода. 
Немного не так, а иногда и совсем не так ... В ХайАсме  в полне можно вести разработку  "снизу вверх" или вообще  в стиле "управляемый хаос", по мере надобности добавляя все новые функции . (Кстати именно так и проявляются лучшие свойства графического подхода к программированию в нормально сконструированной схеме нет  "неприкасаемых зон"  и "невидимого миру кода"      ) 
Соответственно, нужен будет набор элементов для каждого уровня разработки.
 Они есть ... просто не все "самоочевидно"  вот так сходу. 
Возьмём связи. В ХайАсме ты выбираешь одну из имеющихся и засыпаешь на связи другого компонента.
Не совсем понял  про "засыпаю" ХайАсм точно также управляется событиями как и LCL приложение лазаруса часть может работать параллельно часть последовательно, есть горячие клавиши  есть  обычные потки(Thread)  есть таймер  и т.д. 
  Я бы сделал немного по другому. В списке выбираешь нужное поле, если надо, то создавая его, а в другом объекте тебе выдаётся список имеющихся уже в руки связей и так же возможность создания новой. 
В хайасме уже пробовали делать что-то похожее тыкаешь в точку выпадет список элементов схемы  выбираешь один там новый список точек выбранного элемента выбираешь, вуаля !  "есть контакт "...  но не прижилось... 
После этого тебе открывается окошко в котором ты можешь видеть код в который эта связь превратилась. 
  Да нет  в хайасме кода в "который превращается связь" есть инициализация (создание экземпляров ) элементов и задание параметров  .... 
Чтобы сразу его можно было подправить. Если, конечно, данный уровень поддерживает генерацию кода или исходного текста.
 В хайасме можно открыть код почить всего ....  
 Да, эта схема намного сложнее, но она, после того как привыкнешь и если правильно спроектирована среда разработки намного удобнее. А в ХайАсме, текст на ЯВУ присутствует скорее для галочки. Да, его можно править, но сквозного соответствия нет.
В смысле исходный код ? Нет не для галочки, но  и не так как мне бы хотелось ... 
Главное в том ,что используя идеи ХайАсма можно  избавится от рутины, там где она традиционно считалась неизбежностью. 
