Вверх ↑
Этот топик читают: Гость
Ответов: 8926
Рейтинг: 823
#1: 2015-08-25 20:30:52 ЛС | профиль | цитата
В примере N шт (10) графиков в MultiElementEx, но все одним цветом. А очень хотелось бы каждому присвоить свой цвет (красивый), а вот как это сделать не знаю
Кто знает и поможет?
code_36186.txt
карма: 19

0
файлы: 1code_36186.txt [1.6KB] [500]
Ответов: 1926
Рейтинг: 172
#2: 2015-08-25 21:18:03 ЛС | профиль | цитата
Ну, вот случайный выбор цвета:
code_36187.txt

По аналогии можно сделать и определённый для каждой серии.
------------ Дoбавленo в 21.18:
А вот с периодической сменой цветов:
Add(MainForm,1852695,315,266)
{
Width=500
Height=388
Caption="Color"
link(onCreate,10175769:doEvent1,[])
}
Add(Plotter,16009092,588,343)
{
Width=492
Height=361
Align=5
Color=12639424
Name="MyPlott"
MinH=-1.2
MaxH=1.2
LeftMargin=55
}
Add(MultiElementEx,4838984,588,287)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,11815499,21,21)
{
WorkCount=#5:##add|8:##select|8:doCoordX|8:doCoordY|
Width=489
Height=354
Point(##add)
Point(##select)
link(doCoordX,2037588:doValue,[(242,41)(242,69)])
link(doCoordY,14706676:doEvent1,[(200,48)(200,118)])
}
Add(PlotPoints,13792764,245,126)
{
Grapher="parent.MyPlott"
Color=16711680
Size=2
Step=1
MaxValues=1
Shape=2
Point(doColor)
}
Add(Memory,2037588,252,63)
{
}
Add(PlotPoints,14359602,301,133)
{
Grapher="parent.MyPlott"
Color=16711680
Step=1
MaxValues=360
Shape=2
Point(doColor)
link(onAdd,15481524:doNext,[])
}
Add(Hub,14706676,210,112)
{
link(onEvent1,14359602:doAdd,[(291,118)(291,139)])
link(onEvent2,13792764:doAdd,[(235,125)(235,132)])
}
Add(Random,16398693,112,175)
{
Max=16777215
link(onRandom,286572:doEvent1,[])
}
Add(Hub,286572,161,175)
{
link(onEvent1,13792764:doColor,[(210,181)(210,146)])
link(onEvent2,14359602:doColor,[(238,188)])
}
Add(Hub,4700202,70,175)
{
link(onEvent1,16398693:doRandom,[])
}
Add(CounterEx,15481524,350,133)
{
Max=50
link(onNext,13166441:doCase,[])
}
Add(Case,13166441,399,133)
{
Value=Integer(0)
link(onTrue,4700202:doEvent1,[(443,146)(443,164)(58,164)(58,181)])
}
END_SDK
Add(For,3330129,399,287)
{
End=9
link(onEvent,4838984:##add,[])
link(onStop,13310993:doTimer,[(438,300)(438,328)(340,328)(340,342)])
}
Add(Timer,13310993,350,336)
{
Interval=10
Enable=1
link(onTimer,12256603:doNext,[])
}
Add(For,8287706,448,336)
{
End=9
link(onEvent,11679816:doEvent1,[])
}
Add(Counter,12256603,399,336)
{
Max=359
link(onNext,8287706:doFor,[])
}
Add(MathParse,12135364,539,343)
{
MathStr="sin(%1 + %2*18)"
AngleMode=1
link(onResult,4838984:doCoordY,[(579,349)(579,314)])
link(X1,12256603:Count,[(545,334)(531,334)(531,389)(405,389)])
}
Add(Hub,11679816,497,336)
{
link(onEvent1,4838984:##select,[(522,342)(522,300)])
link(onEvent2,12135364:doCalc,[])
}
Add(Random,9304016,399,231)
{
}
Add(Hub,10175769,364,280)
{
link(onEvent1,9304016:doRandomize,[(388,286)(388,244)])
link(onEvent2,3330129:doFor,[])
}


карма: 9
0
файлы: 1code_36187.txt [1.9KB] [567]
Ответов: 16884
Рейтинг: 1239
#3: 2015-08-25 22:14:29 ЛС | профиль | цитата
Леонид, помогло ?
3042, скриншотик в цветах выложи.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8926
Рейтинг: 823
#4: 2015-08-25 22:17:10 ЛС | профиль | цитата
3042, ну, блин! обновил графики
Обновился.jpg
------------ Дoбавленo в 22.17:
Tad, помогло, правда все элементы пропали
карма: 19

0
файлы: 1Обновился.jpg [79.1KB] [606]
Ответов: 16884
Рейтинг: 1239
#5: 2015-08-25 22:27:58 ЛС | профиль | цитата
Мне нет.
Вот так смотрится мультик от 3042 :
Леонид_13.gif
Последнее обновление с SVN - сегодня в 7:00

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1Леонид_13.gif [6.6KB] [594]
Ответов: 8926
Рейтинг: 823
#6: 2015-08-25 22:38:14 ЛС | профиль | цитата
Tad, и у меня так же смотрелся, я решил, что надо Графики обновить через SVN, два раза выдал Code и ini "Ok" и всё пропало, БД элементов подпортилась, наверное Весь HiAsm не работает.
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#7: 2015-08-25 23:05:02 ЛС | профиль | цитата
Леонид, вот пакет Delphi последнего обновления http://www.fayloobmennik.net/5406228
Если будет не нужно, скажите. Удалю.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8926
Рейтинг: 823
#8: 2015-08-25 23:17:16 ЛС | профиль | цитата
Tad, спасибо, восстановил уже, не надо
3042, колитесь, что у вас за плоттер, где там ввод цвета и выкладывайте *.pas и *.ini
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#9: 2015-08-25 23:32:37 ЛС | профиль | цитата
Нашкодил и смылся.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 100
Рейтинг: -1
#10: 2015-08-26 18:35:34 ЛС | профиль | цитата
Pen. Color := readinteger(color,_data_color) ругается error tipes of actual and formal var parameters must be indentical.
Проблема я так понял в _dara_colo . И в том что она не integer а как заделать?
Выше
_data_color:thi_event
Пробывал
_datacolor:integer не помогло
карма: 0

0
Ответов: 8926
Рейтинг: 823
#11: 2015-08-26 19:09:09 ЛС | профиль | цитата
Yaremchenko, попробуйте:
Color2RGB(ReadInteger(_Data,_data_Color,_prop_Color))
карма: 19

0
Ответов: 9906
Рейтинг: 351
#12: 2015-08-26 19:35:00 ЛС | профиль | цитата
Tad писал(а):
Нашкодил и смылся.

Предположительно, "шкодство" заключается в следующем:
#pas
// Добавлен метод в файле PlotSeries.pas, не забывайте описание класса
procedure TPlotSeries._work_doColor;
begin
FSeries.Color := ToInteger(_Data);
FGrapher.ReDraw; // А может и не надо...
end;
И, дополнительно, в файле PlotSeries.ini -- "особачено" свойство Color


------------ Дoбавленo в 19.20:
Второе "шкодство" -- это "оживление" события onAdd
Где-то я давал уже рекомендации... В теме от Леонид-а же.
------------ Дoбавленo в 19.35:
Например, так:
#pas
procedure TPlotSeries._work_doAdd;
var y,x:real;
begin
y := ReadReal(_Data, _data_ValueY);
x := ReadReal(_Data, _data_ValueX);
if _prop_Step <> 0 then
if FSeries.Count = 0 then
x := 0
else
x := FSeries.Values[FSeries.Count-1].x + _prop_Step;
FSeries.Add(y, x);
FGrapher.ReDraw;
_hi_CreateEvent(_Data,@_event_onAdd); // Вот оно - Дерево !!!
end;
карма: 9

0
Ответов: 1926
Рейтинг: 172
#13: 2015-08-26 20:23:34 ЛС | профиль | цитата
У меня HiAsm 4.04 build 185. Надо всё же установить AltBuild



Galkov правильно предположил:

#pas
procedure TPlotSeries._work_doColor;
begin
FSeries.Color := ToInteger(_Data);
end;

и

code_36197.txt
------------ Дoбавленo в 20.13:
Tad писал(а):
3042, скриншотик в цветах выложи.


------------ Дoбавленo в 20.23:
Наверное, стоит добавить на SVN недостающие точки.
карма: 9
0
файлы: 1code_36197.txt [364B] [355]
Ответов: 8926
Рейтинг: 823
#14: 2015-08-26 22:17:20 ЛС | профиль | цитата
Galkov, onAdd я исполнил, событие проходит, но желаемого результата всё равно не достиг: полагал, раз onAdd произошло, все счёты в Plotter-е закончены и можно опять запускать вычисления новой точки, ан фигушки, пришлось рвать кольцо таймером с задержкой в 10 мсек.
По цвету ещё не пытал, но буду
------------ Дoбавленo в 22.17:
Galkov, 3042, и цвет работает, замечательно! (Никогда рюшечками не баловался, но вот пришлось )
карма: 19

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#15: 2015-08-27 00:12:01 ЛС | профиль | цитата
3042 писал(а):
Надо всё же установить AltBuild

Мы же вроде договаривались с автором альтернативных билдов, что отступления от SVN не будет, во избежании именно таких случаев, как тут произошли
------------ Дoбавленo в 00.12:
Оказывается, все уже есть в коде PlotSeries.pas, за исключением "особаченного" Color в PlotSeries.ini
карма: 22

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