Вверх ↑
Ответов: 2193
Рейтинг: 673
#1: 2020-10-14 21:30:35 ЛС | профиль | цитата
Poputchik писал(а):
Как сделать, чтоб перерисовка сетки меньше ресурсов потребляла?

Poputchik, у вас при рисование сетки вообще грубая ошибка. Каждый раз при рисовании очередной линии, а их в сетке может доходить до сотни, происходит чтение с Ini файла ширины линии. Вначале назначить все данные, потом запускать цикл(ы)!
Вот как вариант без циклов, достаточно быстро:


Add(MultiElementEx,15159630,364,350)
{
@Hint=#5:Сетка|
link(Index,16330067:Var,[])
link(Index1,1141211:getVar,[])
AddHint(66,8,45,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,8231950,21,21)
{
WorkCount=#24:load=Загрузка при старте|22:doEvent=Рисовать сетку|
DataCount=#15:Index=рисовать?|27:Index1=Объект для рисования|
Width=461
Height=396
VOffset=70
HOffset=70
link(doEvent,11872306:doEvent,[(56,104)(56,230)])
}
Add(IndexToChanel,11872306,91,224)
{
Count=3
Point(Index)
link(onEvent2,14559719:doEvent1,[])
link(Index,8231950:Index,[])
}
Add(Ini,7772716,175,112)
{
FileName="Parameters.ini"
Section="Color"
Key="setka"
Type=1
link(onResult,10765152:doValue,[])
}
Add(Ini,8649104,168,238)
{
FileName="Parameters.ini"
Section="Setka"
Key="shag"
Type=1
link(onResult,6598284:doOperation,[])
}
Add(Img_FloodFill,4929651,350,329)
{
X=1
Y=1
PatternStyle=0
Point(Pattern)
link(Bitmap,8231950:Index1,[(356,78)(104,78)])
link(Pattern,576848:Var3,[(370,317)(406,317)(406,381)])
}
Add(Bitmap,1772281,217,329)
{
HWidth=4
HHeight=4
FillColor=12632256
Point(doCreate)
Point(onCreate)
Point(HWidth)
Point(HHeight)
link(onCreate,11330297:doDraw,[])
link(HWidth,13116422:Var2,[])
link(HHeight,13116422:Var3,[(230,313)])
}
Add(Img_Line,11330297,266,329)
{
Point2=6553600
Point(Color)
link(onDraw,1275272:doDraw,[])
link(Bitmap,13849584:Var1,[(272,317)(258,317)])
link(Color,7331168:Var2,[])
}
Add(GetDataEx,13849584,252,376)
{
Angle=3
link(Data,1772281:Bitmap,[(223,381)])
}
Add(Img_Line,1275272,308,329)
{
Point2=100
Point(Color)
link(onDraw,4929651:doDraw,[])
link(Bitmap,576848:Var1,[(314,317)(300,317)])
link(Color,7331168:Var3,[(321,159)])
}
Add(GetDataEx,576848,294,376)
{
Angle=3
link(Data,13849584:Var3,[])
}
Add(Memory,10765152,273,112)
{
}
Add(GetDataEx,7331168,273,154)
{
link(Data,10765152:Value,[])
}
Add(Hub,14559719,133,231)
{
OutCount=3
link(onEvent1,7772716:doRead,[(154,237)(154,118)])
link(onEvent2,8649104:doRead,[])
link(onEvent3,1772281:doCreate,[(156,251)(156,349)])
}
Add(GetDataEx,13116422,217,308)
{
link(Data,6598284:Result,[])
}
Add(Math,6598284,217,238)
{
OpType=2
Op2=3
}
END_SDK
Add(LineBreakEx,1141211,371,322)
{
Caption="bmp"
Type=2
}
Add(LineBreak,14496882,98,637)
{
Caption="setka"
Type=1
Primary=[16330067,266,-329]
}
Poputchik писал(а):
Можно при рисовании линии к сетке привязаться?
Нужно отслеживать позицию курсора и принудительно перемещать его в ближайшую точку сетки. И соответственно заносить позицию линии с шагом сетки.
Poputchik писал(а):
Как создать радиодеталь и потом перетянуть на поле?
Как вариант иметь маску (картинку) данной радиодетали из двух цветов (один цвет корпус, второй ножка от которой можно тянуть связь) и фон и рисунок самой радиодетали.
Poputchik писал(а):
В какой файл всё это потом записывать (может Sqlite нужно использовать, для большей скорости обработки данных?)?
Как по мне так обычного текстового на старте хватит.
карма: 10

0