Вверх ↑
Этот топик читают: Гость
Ответов: 704
Рейтинг: 7
#1: 2018-06-23 16:29:13 ЛС | профиль | цитата
Здравствуйте!
Построил вариант для изменения прозрачности формы, когда мышка за границей окна. Но через какое-то время начинает сильно грузить процессор. Как оптимизировать кусочек или может есть более изящный метод?
Add(PosWindow,5706347,833,91)
{
}
Add(MouseEvent,1393734,1050,203)
{
Point(Handle)
}
Add(Timer,15387089,721,168)
{
link(onTimer,9300445:doOperation,[])
}
Add(If_else,9816347,1120,329)
{
Type=4
Op2=Integer(422)
link(onTrue,13034609:doCompare,[])
link(onFalse,2967589:doWork3,[(1159,342)])
link(Op1,12501147:Var2,[(1126,320)(1056,320)])
link(Op2,8447844:Var3,[(1133,152)])
}
Add(If_else,13034609,1162,329)
{
Type=3
Op2=Integer(845)
link(onTrue,13997507:doCompare,[])
link(onFalse,7905177:doWork3,[(1201,342)(1201,321)(1194,321)])
link(Op1,12501147:Var3,[(1168,285)])
link(Op2,9300445:Result,[(1175,278)(839,278)])
}
Add(Math,9300445,833,168)
{
link(onResult,10421687:doOperation,[])
link(Op1,8447844:Var2,[])
}
Add(GetDataEx,8447844,833,147)
{
link(Data,5706347:CurrentLeft,[])
}
Add(GetDataEx,12501147,1050,280)
{
link(Data,1393734:MouseX,[])
}
Add(If_else,13997507,1211,329)
{
Type=4
Op2=Integer(422)
link(onTrue,3539694:doCompare,[])
link(onFalse,9156814:doWork3,[(1250,342)(1250,321)(1243,321)])
link(Op1,5664588:Var2,[])
link(Op2,306611:Var3,[(1224,145)])
}
Add(If_else,3539694,1253,329)
{
Type=3
Op2=Integer(845)
link(onFalse,9156814:doWork2,[(1299,342)(1299,293)])
link(Op1,5664588:Var3,[(1259,299)])
link(Op2,10421687:Result,[(1266,264)(888,264)])
}
Add(Math,10421687,882,168)
{
link(onResult,9816347:doCompare,[(921,174)(921,335)])
link(Op1,306611:Var2,[])
}
Add(GetDataEx,306611,882,140)
{
Angle=3
link(Data,5706347:CurrentTop,[(846,145)])
}
Add(GetDataEx,5664588,1211,294)
{
link(Data,1393734:MouseY,[(1217,271)(1063,271)])
}
Add(HubEx,2967589,1155,287)
{
Angle=2
}
Add(HubEx,7905177,1190,287)
{
Angle=2
link(onEvent,2967589:doWork2,[])
}
Add(HubEx,9156814,1239,287)
{
Angle=2
link(onEvent,7905177:doWork2,[])
}
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 8887
Рейтинг: 823
#2: 2018-06-23 16:54:16 ЛС | профиль | цитата
Neo, а со всеми точками ознакомиться?
Знакомство


Add(MainForm,2953706,147,238)
{
AlphaBlendValue=128
Point(onMouseLeave)
Point(onMouseEnter)
Point(doAlphaBlendValue)
link(onMouseLeave,4934007:doData,[])
link(onMouseEnter,690449:doData,[])
}
Add(DoData,4934007,238,259)
{
Data=Integer(128)
link(onEventData,1366874:doWork1,[(283,265)])
}
Add(DoData,690449,196,266)
{
Data=Integer(255)
link(onEventData,1366874:doWork2,[])
}
Add(HubEx,1366874,279,266)
{
Angle=1
link(onEvent,2953706:doAlphaBlendValue,[(283,301)(137,301)(137,272)])
}

карма: 19

0
Ответов: 704
Рейтинг: 7
#3: 2018-06-23 17:09:37 ЛС | профиль | цитата
Леонид, спасибо, пробовал так, но у меня панели на форме есть и динамические тоже. При наведении на них форма так же "тухнет", хотя мышка в ее пределах. У панелей тоже есть эти точки, но на панелях есть картинки и кнопочки, которые тоже считаются за пределами формы. Выходит все элементы подключить весьма трудоемко.

Редактировалось 2 раз(а), последний 2018-06-23 17:18:44
карма: 0

0
Ответов: 8887
Рейтинг: 823
#4: 2018-06-23 22:41:05 ЛС | профиль | цитата
Neo, ну тогда так же, как у вас, но на специально для этого предназначенных компонентах
так же


Add(MainForm,2953706,336,56)
{
Point(Left)
Point(Top)
Point(Width)
Point(Height)
Point(doAlphaBlendValue)
}
Add(MultiElementEx,5039342,336,112)
{
@Hint=#13:Мышь на форме|
link(Left,2953706:Left,[])
link(Top,2953706:Top,[])
link(Width,2953706:Width,[])
link(Height,2953706:Height,[])
link(onYes,2953706:doAlphaBlendValue,[(375,118)(375,125)(326,125)(326,90)])
}
BEGIN_SDK
Add(EditMultiEx,4822670,21,21)
{
EventCount=#5:onYes|
DataCount=#4:Left|3:Top|5:Width|6:Height|
HOffset=70
}
Add(PointInRect,11846351,84,140)
{
Point2AsOffset=0
link(onTrue,3837312:doData,[])
link(onFalse,6542950:doData,[])
link(Point,12203713:Point,[(90,131)(48,131)])
link(RPoint1,15314696:Point,[])
link(RPoint2,7592092:Point,[(104,124)(132,124)])
}
Add(PointXY,15314696,91,84)
{
link(X,4822670:Left,[])
link(Y,4822670:Top,[])
}
Add(PointXY,7592092,126,84)
{
link(X,4822670:Width,[(132,75)(111,75)])
link(Y,4822670:Height,[(139,68)(118,68)])
}
Add(PointXY,12203713,42,84)
{
link(X,7791823:MouseX,[])
link(Y,7791823:MouseY,[])
}
Add(MouseEvent,7791823,42,35)
{
}
Add(Timer,10342329,42,140)
{
Interval=30
link(onTimer,11846351:doCheck,[])
}
Add(DoData,3837312,133,140)
{
Data=Integer(128)
link(onEventData,1715778:doWork2,[])
}
Add(DoData,6542950,133,147)
{
Data=Integer(255)
link(onEventData,1715778:doWork3,[(179,153)])
}
Add(ChangeMon,2373370,189,140)
{
link(onData,4822670:onYes,[(228,146)(228,27)])
}
Add(HubEx,1715778,175,140)
{
link(onEvent,2373370:doData,[])
}
END_SDK

карма: 19

0
Ответов: 704
Рейтинг: 7
#5: 2018-06-23 23:03:45 ЛС | профиль | цитата
Леонид, очень благодарен! Особенно я ошибся что не поставил проверку изменения данных.
карма: 0

0
Ответов: 704
Рейтинг: 7
#6: 2018-06-26 17:51:33 ЛС | профиль | цитата
Проблема не ушла полностью. Периодически продолжается загрузка процессора, хотя теперь и меньше обычного. Пробовал в поток отдельный вынести для эксперимента - не помогло. Ставил интервал таймера в секунду - совсем без разницы. За то если разорвать выход на прозрачность формы, то процессор не грузит, хотя логику всю выполняет ведь как раньше.
карма: 0

0
Ответов: 8887
Рейтинг: 823
#7: 2018-06-26 18:30:35 ЛС | профиль | цитата
Neo, полчаса и "Двадцать лет ничего подобного!" (с)Собачье сердце
НеПодтверждается.jpg
карма: 19

0
Ответов: 704
Рейтинг: 7
#8: 2018-06-26 19:03:51 ЛС | профиль | цитата
Тогда "эээ... мои полномочия... все." Странновато.
карма: 0

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