Вверх ↑
Этот топик читают: Гость
Ответов: 1291
Рейтинг: 47
#1: 2019-02-13 11:06:52 ЛС | профиль | цитата
Как собственно добавить в поток данные по умолчанию? Пытаюсь через запятые, двоеточия - не выходит:


Add(MainForm,9627070,231,238)
{
Width=285
Height=140
Caption="Move mouse"
}
Add(MT_AddData,8681022,364,231)
{
Data=String(м1, м2)
link(onAdd,194881:doMessage,[])
}
Add(Button,2922319,308,231)
{
Left=138
Top=80
Caption="Show"
link(onClick,8681022:doAdd,[])
}
Add(Edit,13817224,343,175)
{
Left=75
Top=20
Width=180
Text=""
}
Add(Edit,14391580,392,175)
{
Left=75
Top=45
Width=180
Text=""
}
Add(Message,194881,483,231)
{
}
Add(Label,2928975,231,154)
{
Left=10
Top=25
Width=47
Height=17
Caption="Message"
}
Add(Label,10276409,231,196)
{
Left=10
Top=55
Width=40
Height=17
Caption="Caption"
}
Add(InfoTip,7308800,287,154)
{
Info=#9:create MT|
Width=162
Height=116
}
Add(InfoTip,12630600,455,154)
{
Info=#6:use MT|
Width=106
Height=116
}

карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 2059
Рейтинг: 132
#2: 2019-02-13 13:59:07 ЛС | профиль | цитата
Никак.
dp := ReadData(_Data,data[i],@_prop_Data);
Все незадействованные точки будут иметь одно и тоже значение Data.

Решил по всем компонентам пробежаться, память освежить?
пример


Add(MainForm,9627070,217,140)
{
Width=285
Height=140
Caption="Move mouse"
}
[/spoiler]
Add(MT_AddData,8681022,350,133)
{
Count=3
Data=String(м1)
link(onAdd,6098146:doGet,[(398,139)(398,230)])
link(Data2,13817224:Text,[(363,121)(335,121)])
}
Add(Button,2922319,294,133)
{
Left=138
Top=80
Caption="Show"
link(onClick,8681022:doAdd,[])
}
Add(Edit,13817224,329,77)
{
Left=75
Top=20
Width=180
Text="м2"
}
Add(Edit,14391580,378,77)
{
Left=75
Top=45
Width=180
Text=""
}
Add(Message,194881,469,133)
{
}
Add(Label,2928975,217,56)
{
Left=10
Top=25
Width=47
Height=17
Caption="Message"
}
Add(Label,10276409,217,98)
{
Left=10
Top=55
Width=40
Height=17
Caption="Caption"
}
Add(InfoTip,7308800,273,56)
{
Info=#9:create MT|
Width=162
Height=116
}
Add(InfoTip,12630600,441,56)
{
Info=#6:use MT|
Width=106
Height=116
}
Add(Message,12646837,469,273)
{
Caption="Element 1"
}
Add(MT_Get,6098146,413,224)
{
link(onData,8361641:doGet,[])
link(onGet,12646837:doMessage,[(457,237)(457,279)])
}
Add(MT_Get,8361641,469,224)
{
link(onData,12710594:doGet,[])
link(onGet,5548287:doMessage,[(516,237)(516,279)])
}
Add(Message,5548287,532,273)
{
Caption="Element 2"
}
Add(MT_Get,12710594,532,224)
{
link(onGet,13241966:doMessage,[(579,237)(579,279)])
}
Add(Message,13241966,595,273)
{
Caption="Element 2"
}

карма: 6

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#3: 2019-02-13 14:02:43 ЛС | профиль | цитата
Aziz писал(а):
Как собственно добавить в поток данные по умолчанию?

Значение поля Data можно вывести в поток, надо только InputMT присвоить значение отличное от Null. А вот верхние точки перехватить таким способом (через Data) не получится.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#4: 2019-02-13 15:22:45 ЛС | профиль | цитата

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#5: 2019-02-13 15:46:40 ЛС | профиль | цитата
В принципе, если оставить только одну точку, то данные можно вывести и при InputMT равному Null

Схема


Add(MainForm,9627070,119,266)
{
Width=285
Height=140
Caption="Move mouse"
}
Add(MT_AddData,8681022,252,259)
{
Count=1
Data=String(м1, м2)
link(onAdd,194881:doMessage,[])
}
Add(Button,2922319,196,259)
{
Left=138
Top=80
Caption="Show"
link(onClick,8681022:doAdd,[])
}
Add(Edit,13817224,231,203)
{
Left=75
Top=20
Width=180
Text=""
}
Add(Edit,14391580,280,203)
{
Left=75
Top=45
Width=180
Text=""
}
Add(Message,194881,371,259)
{
}
Add(Label,2928975,119,182)
{
Left=10
Top=25
Width=47
Height=17
Caption="Message"
}
Add(Label,10276409,119,224)
{
Left=10
Top=55
Width=40
Height=17
Caption="Caption"
}
Add(InfoTip,7308800,175,182)
{
Info=#9:create MT|
Width=162
Height=116
}
Add(InfoTip,12630600,343,182)
{
Info=#6:use MT|
Width=106
Height=116
}
карма: 22

0
Ответов: 1291
Рейтинг: 47
#6: 2019-02-13 16:33:10 ЛС | профиль | цитата
Спасибо за примеры и за пример использования Debug тоже. Вечером буду дальше изучать.

Тут еще вопрос по панелям Хиасм - если например панель Debug случайно вытащил мышкой из ее нормального положения внизу, то обратно уже никак не садится, или садится но становится невидимой, пока не выберешь ее из главного меню программы. Где хранятся настройки панелей чтобы удалить их чтобы сбросить на умолчания? Чтоб не переустанавливать Hiasm. Не хочу отдельную тему создавать) Или стоит?

--- Добавлено в 2019-02-13 16:37:44

flint2, просто пытаюсь в компоненте кнопка Rush динамически менять цвет. Она у меня будет играть роль цветных вкладок страниц в программе.тк tabcontrol этого не умеет.

Редактировалось 6 раз(а), последний 2019-02-13 16:40:19
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#7: 2019-02-13 18:33:26 ЛС | профиль | цитата
Aziz писал(а):
просто пытаюсь в компоненте кнопка Rush динамически менять цвет

А кто мешает применить компонент
Add(MT_String,2272568,434,259)
{
}
используя точку doMTString? Типы данных там по барабану, компонент сам разберется с ними и переведет во что ему надо.

Редактировалось 1 раз(а), последний 2019-02-13 18:37:01
карма: 22

0
Ответов: 1291
Рейтинг: 47
#8: 2019-02-13 23:15:43 ЛС | профиль | цитата
nesco, спасибо, с потоками я слабо тоже разобрался. Для меня как электронщика бывшего, Хиасм пока как некая электрическая схема. И вот потоки это нечто непонятное - вроде как перенос сигналов через 3-е или 4-е измерение. Хотя в электронике тоже есть подобное - сквозная нумерация выводов. Когда все микрхи соединены общей жирной линией и прописаны только номера соединений. Хотя это мне не мешает их использовать, когда надо много сигналов с разных концов схемы передать в другой контейнер по одному линку. То есть запаковать их в поток и потом распаковать обратно. Удобная штука в визуальном программировании. Не знаю правда, какие издержки это приносит в программу. За все ведь приходится платить.

Редактировалось 3 раз(а), последний 2019-02-13 23:17:58
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 537
Рейтинг: 14
#9: 2019-02-14 00:07:58 ЛС | профиль | цитата
Можно через один кабель передать много разных данных

Add(MainForm,2953706,21,126)
{
}
Add(DoData,5290185,175,126)
{
Data=String(Раз)
link(onEventData,8285573:Wire1,[])
AddHint(17,-21,44,13,Data)
}
Add(DoData,12825521,175,189)
{
Data=String(Два)
link(onEventData,8285573:Wire2,[(226,195)(226,139)])
AddHint(17,-21,46,13,Data)
}
Add(DoData,7359355,175,252)
{
Data=String(Три)
link(onEventData,8285573:Wire3,[(226,258)(226,146)])
AddHint(17,-21,44,13,Data)
}
Add(Button,15504037,77,126)
{
Left=5
Top=5
link(onClick,4285417:doEvent1,[])
}
Add(Hub,4285417,147,126)
{
OutCount=3
link(onEvent1,5290185:doData,[])
link(onEvent2,12825521:doData,[(168,139)(168,195)])
link(onEvent3,7359355:doData,[(168,146)(168,258)])
}
Add(CableWork,8285573,245,126)
{
Count=3
link(Cable,2584034:Cable,[])
}
Add(CableEvent,2584034,301,126)
{
Count=3
link(Wire1,14078297:doText,[])
link(Wire2,11025117:doText,[(329,139)(329,174)])
link(Wire3,5272437:doText,[(329,146)(329,216)])
}
Add(Label,14078297,343,126)
{
Left=110
Top=10
}
Add(Label,11025117,343,168)
{
Left=110
Top=50
}
Add(Label,5272437,343,210)
{
Left=110
Top=90
}
карма: 4

0
Ответов: 1291
Рейтинг: 47
#10: 2019-02-14 01:38:09 ЛС | профиль | цитата
Sersey, да, спасибо, и я об этом написал только что выше.. Правда я обычно использую другой компонент:

Add(MainForm,10265310,532,126)
{
}
Add(DoData,5290185,686,126)
{
Data=String(Раз)
link(onEventData,13392513:doWork1,[(758,132)(758,181)])
AddHint(17,-21,44,13,Data)
}
Add(DoData,12825521,686,189)
{
Data=String(Два)
link(onEventData,13392513:doWork2,[(758,195)(758,188)])
AddHint(17,-21,46,13,Data)
}
Add(DoData,7359355,686,252)
{
Data=String(Три)
link(onEventData,13392513:doWork3,[(758,258)(758,195)])
AddHint(17,-21,44,13,Data)
}
Add(Button,15504037,588,126)
{
Left=5
Top=5
link(onClick,4285417:doEvent1,[])
}
Add(Hub,4285417,658,126)
{
OutCount=3
link(onEvent1,5290185:doData,[])
link(onEvent2,12825521:doData,[(679,139)(679,195)])
link(onEvent3,7359355:doData,[(679,146)(679,258)])
}
Add(CableWork,8285573,791,126)
{
Count=3
link(Cable,2584034:Cable,[])
}
Add(CableEvent,2584034,889,126)
{
Count=3
}
Add(Label,14078297,980,126)
{
Left=110
Top=10
}
Add(Label,11025117,980,168)
{
Left=110
Top=50
}
Add(Label,5272437,980,210)
{
Left=110
Top=90
}
Add(MT_ChanelToIndex,13392513,798,175)
{
Count=3
link(onIndex,13392341:doEvent,[])
}
Add(MT_IndexToChanel,13392341,868,175)
{
Count=3
link(onEvent1,14078297:doText,[(940,181)(940,132)])
link(onEvent2,11025117:doText,[(940,188)(940,174)])
link(onEvent3,5272437:doText,[(940,195)(940,216)])
}


--- Добавлено в 2019-02-14 01:50:25

nesco, твоя схема также как у меня не работает. Данные не разводятся на title и message. Просто в месседж идут все вместе.

nesco писал(а):
В принципе, если оставить только одну точку, то данные можно вывести и при InputMT равному Null




Редактировалось 2 раз(а), последний 2019-02-14 01:50:25
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#11: 2019-02-14 03:03:13 ЛС | профиль | цитата
Aziz писал(а):
твоя схема также как у меня не работает. Данные не разводятся на title и message. Просто в месседж идут все вместе.

Данные не разводятся по MT-элементам, про это же уже написали, это можно сделать только при помощи MT_String, для того он и разрабатывался. А компонент MT_AddData нужен для склейки данных в MT-поток, где данные можно приклеить в начало, конец, или на место отсутствующих данных.

--- Добавлено в 2019-02-14 03:06:31

Aziz писал(а):
Правда я обычно использую другой компонент:

Лучше все же использовать кабели, это гораздо более интересная структура, она поддерживает не только данные в горизонтальном потоке, но и вертикальном тоже.

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

0
Ответов: 1291
Рейтинг: 47
#12: 2019-02-14 09:07:21 ЛС | профиль | цитата
nesco, спасибо, учту про кабели. А насчет потоков, если это возможно с другим компонентом, можно рабочий пример? Чтобы весь поток определялся внутри компонента строкой и затем выводился в месседжбоксе часть в его заголовок, часть в основное сообщение. И чтобы это было одним компонентом. А то если 3-4 то уже проще описывать поток извне множеством компонентов типа Memory и потом их собирать на верхние точки. Хочется все же поменьше линков, больше писать и меньше рисовать) То есть из художника превратиться в писателя))
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#13: 2019-02-14 10:29:00 ЛС | профиль | цитата
Aziz писал(а):
Чтобы весь поток определялся внутри компонента строкой и затем выводился в месседжбоксе часть в его заголовок, часть в основное сообщение.

Это никак не связано вот с этим
Aziz писал(а):
просто пытаюсь в компоненте кнопка Rush динамически менять цвет.

а совсем другая задача. При программировании стиля Rush компонентов необходимо сформировать MT-поток из многих параметров, и его не надо разделять. Те ты просишь обратную задачу -- разделение элементов, а не их собирание. Чтобы понять, что тебе надо, сначала надо видеть для чего тебе надо. Общего компонента на все случаи не существует, в каждом конкретном случае применяется каждое конкретное решение, а уж тебе надо самому смотреть, насколько оно проще.

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

0
Ответов: 1291
Рейтинг: 47
#14: 2019-02-14 12:05:07 ЛС | профиль | цитата
Просто я пытаюсь понять общие принципы правильного синтаксиса при описании потока. Как его описывать через запятую, скобки? Каким образом некоторым компонентам удается по одному линку передавать разнородный поток и они на входе компонента потом автоматически разделяются правильным образом? Значит это как-то описано в структуре потока. Конкретно с примером по Раш кнопке - как эти все структуры ее правильно перечислить чтобы послать корректный запрос установки стиля? Я пытался через запятые, но так только самый первый параметр фона срабатывает остальные видимо некорректно обрабатываются и не влияют.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#15: 2019-02-14 12:24:51 ЛС | профиль | цитата
Aziz писал(а):
Как его описывать через запятую, скобки?

Никак. Строка с разделителями есть строка строка с разделителями, MT-поток есть MT-поток. Строка в памяти имеет непрерывный байтовый поток, MT-поток -- цепь структур TData, которые могут содержать в себе либо основные типы данных, либо указатели на второстепенные типы данных.
Aziz писал(а):
Конкретно с примером по Раш кнопке - как эти все структуры ее правильно перечислить чтобы послать корректный запрос установки стиля?

А справку почитать не вариант. Для ButtonRush
Аргументы
doSetTheme - MT-поток, состоящий из последовательности следующих элементов:
[BackColor]
[ColorFrom]
[ColorTo]
[ColorText]
[BorderColor]
[ColorShadow]
[ColorFromDis]
[ColorToDis]
[ColorTextDis]
[BorderColorDis]
[ColorShadowDis]
[ColorFromOver]
[ColorToOver]
[ColorTextOver]
[BorderColorOver]
[ColorShadowOver]
[ColorFromDown]
[ColorToDown]
[ColorTextDown]
[BorderColorDown]
[ColorShadowDown]

Примечание! Параметр со значение равным -1 не приводит к изменению цвета
Откуда ты взял вот это
Aziz писал(а):
Я пытался через запятые

Я даже представить себе не могу.

Редактировалось 2 раз(а), последний 2019-02-14 12:30:14
карма: 22

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