Вверх ↑
Разработчик
Ответов: 26113
Рейтинг: 2126
#1: 2024-10-06 23:43:36 ЛС | профиль | цитата
RomanRoman писал(а):
От чего это зависит?

От того, какой элемент инициализируется первым при старте программы. Попробуй элементы PlotLine по очереди отправить на задний план и проверить отрисовку линий. В одном случае это будет красная, в другом -- синяя.

--- Добавлено в 2024-10-06 23:45:14

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

--- Добавлено в 2024-10-07 00:09:20

Вот в такой схеме сверху всегда будет отрисовываться последняя линия, но нижний график не сохранится.

Схема

Add(MainForm,5423394,245,322)
{
Caption="Linear graph"
}
Add(Plotter,11338811,308,322)
{
Width=384
Height=262
Align=5
Name="plotter"
}
Add(Button,13087410,245,413)
{
Left=50
Top=20
Caption="Blue"
link(onClick,8337345:doWork1,[])
}
Add(Button,8303377,245,455)
{
Left=50
Top=50
Caption="Red"
link(onClick,8337345:doWork2,[(284,461)(284,426)])
}
Add(MultiElementEx,16305805,504,434)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,1093061,21,21)
{
WorkCount=#5:##add|8:##select|7:##clear|
Point(##add)
Point(##select)
Point(##clear)
link(##add,1485132:doEvent1,[(102,27)(102,41)])
link(##select,5582304:doFor,[(59,34)(59,132)])
}
Add(PlotLines,3011000,245,70)
{
Grapher="parent.plotter"
Size=2
Step=1
Point(doColor)
}
Add(For,5582304,154,126)
{
End=97
link(onEvent,3011000:doAdd,[(198,132)(198,76)])
}
Add(Hub,1485132,112,35)
{
link(onEvent1,3011000:doClear,[(207,41)(207,83)])
link(onEvent2,3011000:doColor,[(193,48)(193,90)])
}
END_SDK
Add(StrList,12081361,406,364)
{
Strings=#8:16711680|3:255|
}
Add(ArrayEnum,9854582,420,434)
{
link(onItem,16305805:##add,[])
link(Array,12081361:Array,[])
}
Add(ChanelToIndex,8337345,315,413)
{
link(onIndex,8375845:doEvent1,[])
}
Add(Hub,8375845,371,413)
{
OutCount=3
link(onEvent1,16305805:##clear,[(459,419)(459,454)])
link(onEvent2,9854582:doEnum,[(410,426)(410,440)])
link(onEvent3,16305805:##select,[(403,433)(403,475)(466,475)(466,447)])
}


Если используются разные алгоритмы отрисовки, то тогда надо применить полиморфный контейнер.
P.S. Все это только пример для понимания. И тут получится довольно сложная динамическая схема, с кэшированием, если требуется мгновенно перенести графики в разные слои. И графики придется перерисовать в той цветовой последовательности, в которой необходимо, при помощи последовательного вызова нужных контейнеров. Все это можно сделать, конечно, и без контейнеров, но схема получится аховой, с кучей повторяющихся элементов. С контейнерами проще, тк можно все их разом уничтожить и пересоздать в нужной последовательности.
карма: 22

0
Редактировалось 7 раз(а), последний 2024-10-07 03:11:00