Вверх ↑
Этот топик читают: Гость
Ответов: 1821
Рейтинг: 168
#1: 2011-08-31 22:09:09 ЛС | профиль | цитата
Доброго времени суток, пользователи. Подскажите пожалуйста, как в PopupMenuEx изменить цвет прозрачности картинок Bitmaps А то понакачивал из портала icons.hiasm.com иконок, загрузил их в PopupMenuEx и вот - все картинки полупрозрачные... (я так понял там по-умолчанию стоит белый цвет прозрачности)
карма: 5

0
Ответов: 67
Рейтинг: 5
#2: 2011-08-31 22:18:53 ЛС | профиль | цитата
И ещё, как бы, за прозрачный цвет берется цвет левого верхнего пиксела, вроде
карма: 1

1
Голосовали:sаmakacd
Разработчик
Ответов: 26324
Рейтинг: 2148
#3: 2011-08-31 22:22:35 ЛС | профиль | цитата
sаmakacd писал(а):
я так понял там по-умолчанию стоит белый цвет прозрачности

Иконки не пойдут, для нормального отображения надо использовать маскированные картинки.
карма: 22

1
Голосовали:sаmakacd
Ответов: 1821
Рейтинг: 168
#4: 2011-08-31 22:25:26 ЛС | профиль | цитата
nesco, спасибо. А цвет прозрачности можно изменить?
карма: 5

0
Разработчик
Ответов: 26324
Рейтинг: 2148
#5: 2011-08-31 23:46:02 ЛС | профиль | цитата
sаmakacd писал(а):
А цвет прозрачности можно изменить?

Можно любой поставить, определяется крайним верхним левым пикселем. Это и есть маскирование, когда прозрачные области заполняются цветом ключевого пикселя
карма: 22

1
Голосовали:sаmakacd
Ответов: 216
Рейтинг: -4
#6: 2012-06-21 08:07:39 ЛС | профиль | цитата
А как можно сделать чтобы, допустим у меня на форме кнопка и при нажатии на эту кнопку она скрывается и раскрывается меню "popupmenuex" при выборе пункта меню все работает ,меню скрывается а кнопка становится видимым .Вопрос как сделать чтобы меню скрылось а кнопка стала видимым если я ничего не выбрал ?
------------ Дoбавленo в 08.07:
Add(MainForm,2953706,91,210)
{
Color=16777215
BorderStyle=0
Position=1
TransparentManager="1"
}
Add(PopupMenuEx,16320300,448,238)
{
Menu=#13:Мои документы|15:Общие документы|12:Рабочий стол|9:Downloads|8:Загрузки|16:Сканеры и Камера|5:Выход|
LineStyle=1
Bitmaps=[]
Point(doPopup)
Point(onEndPopup)
link(MenuItemIdx,3411378:doWork3,[(492,244)(492,190)(389,190)])
}
Add(MouseEvent,15450908,329,189)
{
}
Add(MathParse,16184383,301,259)
{
DataCount=6
MathStr="((%5 - %1)-(%4/8)) * 65536 + ((%6 - %2)+5+%3)
"
ResultType=0
link(onResult,16320300:doPopup,[])
link(X1,1344472:MouseX,[])
link(X2,1344472:MouseY,[])
link(X3,1344472:Height,[])
link(X4,1344472:Width,[])
link(X5,15450908:MouseX,[])
link(X6,15450908:MouseY,[])
}
Add(Button,1344472,301,126)
{
Left=135
Top=65
Width=120
Height=25
Point(MouseX)
Point(MouseY)
Point(Height)
Point(Width)
Point(doVisible)
link(onClick,14082346:doEvent1,[])
}
Add(TransparentManager,2225398,98,266)
{
Name="1"
FormTranspColor=16777215
}
Add(Switch,4505310,399,126)
{
DataOn=Integer(1)
DataOff=Integer(0)
Default=0
link(onSwitch,1344472:doVisible,[(451,132)(451,105)(289,105)(289,132)])
}
Add(Hub,14082346,357,126)
{
link(onEvent1,3411378:doWork2,[])
link(onEvent2,16184383:doCalc,[(378,139)(378,178)(289,178)(289,265)])
}
Add(HubEx,3411378,385,126)
{
link(onEvent,4505310:doSwitch,[])
}


карма: 0

0
Разработчик
Ответов: 26324
Рейтинг: 2148
#7: 2012-06-21 09:24:45 ЛС | профиль | цитата
mestnyi писал(а):
А как можно сделать

Честно сказать, то я как-то затруднясь ответить на этот вопрос сразу. Дело в том, что при полной прозрачности управление мышью передается системе, а хука мыши у нас нет, да и меню не имеет выведенных событий мыши, чтобы можно было их отследить
карма: 22

0
Ответов: 216
Рейтинг: -4
#8: 2012-06-21 14:10:33 ЛС | профиль | цитата
nesco, вот в таком роде что нибудь по лучше не получится
code_28279.txt
карма: 0

0
файлы: 1code_28279.txt [3.2KB] [112]
Разработчик
Ответов: 26324
Рейтинг: 2148
#9: 2012-06-21 14:35:14 ЛС | профиль | цитата
mestnyi писал(а):
вот в таком роде что нибудь по лучше не получится

А черт его знает. Мне интересно, а зачем тебе на экране прямоугольник и кнопка внутри, что это означает Ну вот честно -- не въехал в твою задумку
карма: 22

0
Ответов: 216
Рейтинг: -4
#10: 2012-06-21 21:17:13 ЛС | профиль | цитата
nesco, вот для этого http://forum.hiasm.com/forum_serv.php?q=56&id=3083 мучаюсь с первого дня как я попал на форум не могу доделать.
карма: 0

0
Разработчик
Ответов: 26324
Рейтинг: 2148
#11: 2012-06-22 16:38:05 ЛС | профиль | цитата
Че-то у меня просто никак не получается. На тебе то, что у меня получилось


Add(MultiElementEx,12138917,301,336)
{
@Hint=#11:MenuTracker|
link(onEvent,1976755:doEvent1,[(339,342)(339,310)(79,310)(79,377)])
AddHint(-107,-19,79,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,12422996,21,21)
{
WorkCount=#7:doTimer|0:|
EventCount=#7:onEvent|
Width=489
Height=333
VOffset=28
HOffset=77
link(doTimer,10852222:doTimer,[(44,55)(44,132)])
}
Add(WinInfo,4084736,112,126)
{
Point(Left)
Point(Top)
Point(Width)
Point(Height)
Point(ParentHandle)
link(onWinInfo,6478154:doCompare,[])
link(Handle,3204845:Handle,[(118,118)(104,118)])
}
Add(MouseEvent,3204845,84,77)
{
Button=2
Point(Handle)
Point(doPosition)
link(X,12319140:Result,[(97,65)(216,65)(216,274)(391,274)])
}
Add(Timer,10852222,70,126)
{
Interval=50
Enable=1
link(onTimer,4084736:doWinInfo,[])
}
Add(Switch,4967968,329,280)
{
DataOn=Integer(0)
DataOff=Integer(1)
Point(onOn)
Point(doOn)
Point(onOff)
link(onSwitch,12422996:onEvent,[(481,286)(481,55)])
link(onOn,12319140:doCalc,[(373,293)(373,237)])
link(onOff,3204845:doClick,[(491,300)(491,46)(63,46)(63,83)])
}
Add(PointInRect,2450233,119,294)
{
Point2AsOffset=0
link(onTrue,4967968:doOn,[])
link(Point,2603805:Point,[(125,272)(90,272)])
link(RPoint1,8955650:Point,[])
link(RPoint2,12785858:Point,[(139,272)(174,272)])
}
Add(PointXY,2603805,84,217)
{
link(X,3204845:MouseX,[])
link(Y,3204845:MouseY,[])
}
Add(PointXY,8955650,126,217)
{
link(X,5184475:Var2,[])
link(Y,8086524:Var2,[])
}
Add(PointXY,12785858,168,217)
{
link(X,11820547:Var2,[])
link(Y,4084736:Height,[(181,187)(153,187)])
}
Add(If_else,6478154,231,126)
{
Op2=String(#32768)
link(onTrue,2450233:doCheck,[(313,132)(313,62)(36,62)(36,300)])
link(onFalse,14180715:doEvent1,[])
link(Op1,4084736:ClassName,[(237,108)(184,108)(184,179)(118,179)])
}
Add(MathParse,12319140,385,231)
{
MathStr="%1 + %2 / 2"
ResultType=0
link(onResult,739755:doOperation,[])
link(X1,5184475:Var3,[(391,201)])
link(X2,11820547:Var3,[(398,194)])
}
Add(GetDataEx,5184475,126,196)
{
link(Data,4084736:Left,[])
}
Add(GetDataEx,11820547,168,189)
{
Angle=3
link(Data,4084736:Width,[(146,194)])
}
Add(Math,739755,427,231)
{
Op2=8
ResultType=0
link(onResult,3204845:doPosition,[(471,237)(471,54)(53,54)(53,97)])
link(Op1,8086524:Var3,[(433,208)])
}
Add(GetDataEx,8086524,133,203)
{
link(Data,4084736:Top,[])
}
Add(Hub,14180715,273,133)
{
link(onEvent1,4967968:doReset,[(313,139)(313,293)])
link(onEvent2,10852222:doStop,[(299,146)(299,168)(43,168)(43,139)])
}
END_SDK
Add(Button,11937980,196,371)
{
Left=30
Top=20
TabOrder=-1
Point(doVisible)
link(onClick,12772576:doEvent1,[])
}
Add(Hub,12772576,245,371)
{
link(onEvent1,12138917:doTimer,[(280,377)(280,342)])
link(onEvent2,16320300:doPopupHere,[])
}
Add(PopupMenuEx,16320300,301,378)
{
Menu=#13:Мои документы|15:Общие документы|12:Рабочий стол|9:Downloads|8:Загрузки|16:Сканеры и Камера|5:Выход|
LineStyle=1
Bitmaps=[]
Point(doPopup)
Point(onEndPopup)
}
Add(TransparentManager,2225398,245,413)
{
Name="1"
FormTranspColor=16777215
}
Add(MainForm,8663282,196,413)
{
Color=16777215
BorderStyle=0
Position=1
TransparentManager="1"
Point(Handle)
}
Add(WinTools,10648899,196,462)
{
link(Handle,8663282:Handle,[])
}
Add(Hub,1976755,91,371)
{
link(onEvent1,11937980:doVisible,[])
link(onEvent2,16055780:doDeferredEvent,[(123,384)(123,482)])
}
Add(DeferredEvent,16055780,140,476)
{
link(onDeferredEvent,10648899:doActive,[])
}

карма: 22

1
Голосовали:Ex_
Ответов: 1173
Рейтинг: 49
#12: 2012-06-22 16:43:17 ЛС | профиль | цитата
А так не пойдёт?
code_28286.txt
Или нужно, чтобы меню скрывалось при выходе курсора за пределы меню?
карма: 0

0
файлы: 1code_28286.txt [556B] [46]
Разработчик
Ответов: 26324
Рейтинг: 2148
#13: 2012-06-22 16:49:22 ЛС | профиль | цитата
Ex_ писал(а):
Или нужно, чтобы меню скрывалось при выходе курсора за пределы меню?

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

0
Ответов: 1173
Рейтинг: 49
#14: 2012-06-22 17:03:16 ЛС | профиль | цитата
nesco, попытался повторить ваш подвиг, но не получилось
Почему-то WinInfo выдаёт какие-то неадекватные данные:

Add(MainForm,9966195,294,147)
{
Height=66
}
Add(Button,2130056,357,147)
{
Left=10
Top=10
Point(doVisible)
link(onClick,2247585:doEvent1,[])
}
Add(Hub,2247585,406,147)
{
OutCount=3
link(onEvent1,4457236:doWork1,[(438,153)(438,104)])
link(onEvent2,10550091:doTimer,[(432,160)(432,192)(345,192)(345,223)])
link(onEvent3,4625329:doPopupHere,[])
}
Add(PopupMenuEx,4625329,455,161)
{
Menu=#4:eins|4:zwei|4:drei|
Bitmaps=[]
Point(onEndPopup)
link(onEndPopup,4457236:doWork2,[(499,174)(499,139)(443,139)(443,111)])
}
Add(ChanelToIndex,4457236,455,98)
{
link(onIndex,2130056:doVisible,[(502,104)(502,81)(345,81)(345,153)])
}
Add(WinInfo,6059564,455,217)
{
Point(IsVisible)
Point(Left)
Point(Width)
Point(Top)
Point(Height)
link(onWinInfo,10811630:doOperation,[(519,223)(519,255)(464,255)(464,286)])
link(Handle,4625329:Handle,[])
}
Add(MouseEvent,5040054,546,217)
{
}
Add(Timer,10550091,357,217)
{
Interval=10
Enable=1
link(onTimer,6059564:doWinInfo,[])
}
Add(Math,10811630,476,280)
{
ResultType=0
link(onResult,2465446:doCompare,[])
link(Op1,6059564:Left,[])
link(Op2,6059564:Width,[])
}
Add(Math,8112676,490,350)
{
ResultType=0
link(onResult,10571124:doCompare,[])
link(Op1,6059564:Top,[])
link(Op2,6059564:Height,[])
}
Add(If_else,2465446,539,280)
{
Type=2
link(onTrue,8112676:doOperation,[(583,286)(583,321)(478,321)(478,356)])
link(Op2,5040054:MouseX,[])
}
Add(If_else,10571124,546,350)
{
Type=2
link(onTrue,9966195:doClose,[(590,356)(590,265)(282,265)(282,174)])
link(Op2,5040054:MouseY,[])
}
карма: 0

0
Разработчик
Ответов: 26324
Рейтинг: 2148
#15: 2012-06-22 17:07:38 ЛС | профиль | цитата
Ex_ писал(а):
Почему-то WinInfo выдаёт какие-то неадекватные данные:

У меня же там не зря стоит сравнение на попадание мышой в класс меню
карма: 22

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