Вверх ↑
Разработчик
Ответов: 26151
Рейтинг: 2127
#1: 2007-11-26 12:18:05 ЛС | профиль | цитата
Андрей. писал(а):
рисунок в виде кнопки работает оччень медленно по сравнению с кнопкой
Что-то не заметил, вот уже час юзаю.
И черт тебя вообще поймешь, че тебе надо. В начале темы ты просил цветную кнопку (я еще написал, что не поддерживается цвет отличный от мышиного). Леонид нарисовал схему, как отрисовать прямоугольник. Затем ты спросил как на нем отрисовать текст поверх. И потом выясняется, что тебе надо совсем не это. Я сделал компонент, который выбирает цвета из цветовой схемы -- ColorBox называется, в нем можно выбрать любой системный цвет по имени (да и любой вообще). Не хотите цветную кнопку, не надо (ой как я иногда понимаю Galkova), в конце концов она и мне пригодится (вот только сделаю ее отдельным мультиком с иконкой).

Вот, кому интересно -- цветная кнопка, сделанная отдельным мультиком



Add(MainForm,5903361,175,147)
{
Left=20
Top=105
Width=279
Height=134
Position=1
link(onCreate,1465141:doWork2,[])
}
Add(MultiElementEx,14134098,329,182)
{
link(Bitmap,10820786:Bitmap,[])
link(Width,10820786:Width,[(342,170)(349,170)])
link(Height,10820786:Height,[(349,170)(356,170)])
link(onRefresh,10820786:doRefresh,[(373,188)(373,160)(317,160)(317,132)])
link(Text,4128138:Text,[])
}
BEGIN_SDK
Add(EditMultiEx,970376,21,21)
{
WorkCount=#11:doInitColor|11:doMouseDown|9:doMouseUp|6:doFont|
EventCount=#9:onRefresh|7:onClick|
DataCount=#6:Bitmap|5:Width|6:Height|4:Text|
Width=811
Height=620
link(doInitColor,13761919:doEvent1,[(53,27)(53,104)])
link(doMouseDown,12863040:doEvent1,[(81,34)(81,167)])
link(doMouseUp,9663556:doEvent2,[(81,41)(81,118)])
link(doFont,633490:doWork,[])
}
Add(Icon,3840327,35,574)
{
@Hint=#5:#main|
Icon=[ZIP5E07000078DA636060044209090610C9E0C1CEC020C6C0C0A001C4402106030688380828B0338C82E102F2CCE4C84368E6FC3FBE71454124A908AB3957E6B49284883407220E67C34992CCC16AC2A03207CD103ABB875AE14C49BC938130CD1905230AFCC7011E3030138DF10100733E920A]
}
Add(GetDataEx,14227573,287,245)
{
link(Data,970376:Bitmap,[(300,135)(27,135)])
}
Add(Img_Text,5233983,658,420)
{
Font=[MS Sans Serif,8,1,0,1]
Point(doFont)
MakeExt(Font,Font,Font)
MakeExt(Text,Text,Text)
link(Bitmap,14227573:Var3,[(664,394)(498,394)(498,254)])
link(Text,970376:Text,[(671,67)(48,67)])
link(X,5670597:Var,[])
link(Y,12474959:Var,[])
}
Add(GetIndexData,2400144,441,504)
{
Count=5
link(Data1,6637878:Var2,[(447,370)(314,370)])
link(Data2,7879824:Var2,[])
link(Data3,7879824:Var3,[(461,478)])
link(Data4,15716608:Var2,[])
link(Data5,15716608:Var3,[(475,478)])
}
Add(Math,327897,399,245)
{
OpType=1
Op2=65537
link(onResult,5402347:doOperation,[])
link(Op1,8056914:Var2,[])
}
Add(MathParse,10853479,588,182)
{
DataCount=3
MathStr="(%1*100 + (255 - %1) * 90) div 100 +( (%2*100 + (255 - %2) * 90) div 100)*256 + ( (%3*100 + (255 - %3) * 90) div 100)*65536"
ResultType=0
link(onResult,327897:doOperation,[(632,188)(632,220)(387,220)(387,251)])
link(X1,1701047:Var3,[(594,163)])
link(X2,9206007:Var3,[(601,156)])
link(X3,1770920:Var3,[(608,149)])
}
Add(GetDataEx,8662406,364,469)
{
link(Data,600302:Point,[])
}
Add(ToRGB,7626156,371,98)
{
link(onResult,5389150:doRGB,[])
}
Add(PointXY,600302,371,434)
{
}
Add(PointXY,11110529,308,168)
{
link(X,3365414:Var2,[])
link(Y,5889064:Var2,[])
}
Add(ChanelToIndex,4099351,287,497)
{
Count=5
link(onIndex,16325757:doEvent1,[])
}
Add(Img_Rectangle,11506724,385,588)
{
Color=16777215
Style=1
Point(BgColor)
link(Bitmap,14227573:Var2,[(391,567)(300,567)])
link(Point1,14060433:Var,[])
link(Point2,2400144:Var,[(405,562)(447,562)])
link(Color,9067973:Var2,[])
link(BgColor,9067973:Var3,[(419,569)])
}
Add(PointXY,1944196,441,434)
{
X=2
Y=2
}
Add(GetDataEx,7879824,441,469)
{
link(Data,327897:Result,[(454,382)(405,382)])
}
Add(GetDataEx,6637878,301,210)
{
link(Data,11110529:Point,[])
}
Add(GetDataEx,15716608,455,469)
{
link(Data,5402347:Result,[(468,382)(538,382)])
}
Add(GetDataEx,3365414,301,140)
{
link(Data,970376:Width,[(314,82)(34,82)])
}
Add(Math,5402347,532,245)
{
OpType=1
Op2=131074
link(onResult,14013023:doOperation,[])
link(Op1,8056914:Var3,[(538,219)])
}
Add(Hub,16325757,336,497)
{
OutCount=4
link(onEvent1,14060433:doIndex,[])
link(onEvent2,2400144:doIndex,[])
link(onEvent3,9401361:doIndex,[])
link(onEvent4,11506724:doDraw,[(376,524)(376,594)])
}
Add(PointXY,2526611,406,434)
{
X=1
Y=1
}
Add(GetIndexData,14060433,392,497)
{
Count=5
link(Data1,8662406:Var2,[(398,489)(377,489)])
link(Data2,8662406:Var3,[(405,478)])
link(Data3,4043104:Var2,[])
link(Data4,4043104:Var3,[(419,478)])
link(Data5,1944196:Point,[(426,481)(447,481)])
}
Add(GetDataEx,4043104,399,469)
{
link(Data,2526611:Point,[])
}
Add(GetDataEx,1701047,532,154)
{
Angle=3
link(Data,3775179:Var3,[])
}
Add(Math,14013023,630,245)
{
OpType=1
ResultType=0
link(onResult,10272028:doOperation,[])
link(Op1,3365414:Var3,[(636,149)])
link(Op2,5233983:TextWidth,[(643,233)(653,233)(653,464)(664,464)])
}
Add(Hub,12863040,140,161)
{
OutCount=3
link(onEvent1,13625069:doWork2,[(180,167)(180,237)])
link(onEvent2,6208002:doWork2,[])
link(onEvent3,7842488:doWork,[(188,181)(188,188)])
}
Add(Hub,9663556,140,105)
{
InCount=2
link(onEvent1,13625069:doWork1,[(180,111)(180,230)])
link(onEvent2,6208002:doWork1,[(193,118)])
}
Add(GetDataEx,4519652,364,350)
{
link(Data,9366934:Result,[])
}
Add(HubEx,6208002,189,161)
{
link(onEvent,11903065:doWork,[])
}
Add(Hub,16750378,231,224)
{
OutCount=14
link(onEvent3,5157101:doIndex,[(289,244)(289,398)])
link(onEvent4,15027298:doIndex,[(341,251)(341,398)])
link(onEvent5,12374025:doIndex,[(373,258)(373,398)])
link(onEvent6,11920042:doIndex,[(401,265)(401,398)])
link(onEvent7,5670597:doIndex,[(467,272)(467,335)])
link(onEvent8,12474959:doIndex,[(471,279)(471,384)])
link(onEvent9,4099351:doWork1,[(275,286)(275,503)])
link(onEvent10,4099351:doWork2,[(275,293)(275,510)])
link(onEvent11,4099351:doWork3,[(275,300)(275,517)])
link(onEvent12,4099351:doWork4,[(275,307)(275,524)])
link(onEvent13,4099351:doWork5,[(275,314)(275,531)])
link(onEvent14,5233983:doDraw,[(461,321)(461,426)])
}
Add(LineBreakEx,12810573,679,42)
{
Caption="Click"
Type=1
link(OnEvent,2738912:doData,[])
}
Add(GetDataEx,3925080,476,336)
{
link(Data,15816770:Result,[])
}
Add(GetDataEx,9067973,399,560)
{
link(Data,9401361:Var,[(412,554)(496,554)])
}
Add(Math,10272028,672,245)
{
OpType=7
Op2=2
ResultType=0
link(onResult,13649493:doOperation,[])
}
Add(GetDataEx,8056914,392,210)
{
Angle=3
link(Data,6637878:Var3,[])
}
Add(GetDataEx,7520929,364,154)
{
link(Data,7626156:R,[])
}
Add(GetDataEx,1770920,546,140)
{
Angle=3
link(Data,484058:Var3,[])
}
Add(GetIndexData,9401361,490,511)
{
Count=5
link(Data1,5157101:Var,[(496,475)(377,475)])
link(Data2,15027298:Var,[(503,475)(433,475)])
link(Data3,12374025:Var,[(510,475)(489,475)])
link(Data4,11920042:Var,[(517,475)(545,475)])
link(Data5,5389150:Color,[(524,394)(622,394)])
}
Add(GetIndexData,5157101,371,392)
{
link(Data1,4519652:Var2,[])
link(Data2,11799835:Var1,[(384,345)])
}
Add(GetDataEx,9206007,539,147)
{
Angle=3
link(Data,10340188:Var3,[])
}
Add(GetIndexData,15027298,427,392)
{
link(Data1,11799835:Var2,[])
link(Data2,3925080:Var1,[(440,345)])
}
Add(MathParse,2973174,539,182)
{
DataCount=3
MathStr="(%1*100 + (255 - %1) * 40) div 100 +( (%2*100 + (255 - %2) * 40) div 100)*256 + ( (%3*100 + (255 - %3) * 40) div 100)*65536"
ResultType=0
link(onResult,10853479:doCalc,[])
link(X1,1701047:Var2,[])
link(X2,9206007:Var2,[])
link(X3,1770920:Var2,[])
}
Add(GetDataEx,5045324,532,336)
{
link(Data,2973174:Result,[])
}
Add(Math,2713204,637,287)
{
OpType=1
ResultType=0
link(onResult,13557068:doOperation,[])
link(Op1,5889064:Var3,[(643,142)])
link(Op2,5233983:TextHeight,[(650,275)(660,275)(660,464)(671,464)])
}
Add(Math,13557068,679,287)
{
OpType=7
Op2=2
ResultType=0
link(onResult,5449238:doOperation,[])
}
Add(GetDataEx,5889064,308,133)
{
link(Data,970376:Height,[(321,79)(41,79)])
}
Add(GetDataEx,8495578,378,140)
{
link(Data,7626156:B,[])
}
Add(GetDataEx,7431247,371,147)
{
link(Data,7626156:G,[])
}
Add(GetIndexData,12374025,483,392)
{
link(Data1,3925080:Var2,[])
link(Data2,5045324:Var1,[(496,345)])
}
Add(GetDataEx,3775179,476,154)
{
Angle=3
link(Data,7520929:Var3,[])
}
Add(GetDataEx,484058,490,140)
{
Angle=3
link(Data,8495578:Var3,[])
}
Add(GetIndexData,11920042,539,392)
{
link(Data1,5045324:Var2,[])
link(Data2,4519652:Var3,[(552,359)])
}
Add(RGB,5389150,616,98)
{
link(onRGB,9366934:doCalc,[(660,104)(660,181)(359,181)(359,188)])
}
Add(GetDataEx,10340188,483,147)
{
Angle=3
link(Data,7431247:Var3,[])
}
Add(MathParse,15816770,483,182)
{
DataCount=3
MathStr="max(0,(%1 - 60))+max (0,(%2 - 60)) *256 +max(0, (%3 - 60)) *65536"
ResultType=0
link(onResult,2973174:doCalc,[])
link(X1,3775179:Var2,[])
link(X2,10340188:Var2,[])
link(X3,484058:Var2,[])
}
Add(MathParse,9366934,371,182)
{
DataCount=3
MathStr="max(0,(%1 - 120))+max (0,(%2 -120)) *256 +max(0, (%3 - 120)) *65536"
ResultType=0
link(onResult,15816770:doCalc,[])
link(X1,7520929:Var2,[])
link(X2,7431247:Var2,[])
link(X3,8495578:Var2,[])
}
Add(GetIndexData,5670597,672,329)
{
link(Data1,10272028:Result,[])
link(Data2,13649493:Result,[(685,303)(720,303)])
}
Add(GetIndexData,12474959,679,378)
{
link(Data1,13557068:Result,[])
link(Data2,5449238:Result,[(692,348)(727,348)])
}
Add(Math,13649493,714,245)
{
Op2=1
ResultType=0
link(onResult,2713204:doOperation,[(758,251)(758,279)(625,279)(625,293)])
}
Add(Math,5449238,721,287)
{
Op2=1
ResultType=0
}
Add(GetDataEx,11799835,420,336)
{
link(Data,10853479:Result,[(433,277)(594,277)])
}
Add(ChanelToIndex,13625069,189,224)
{
link(onIndex,16750378:doEvent1,[])
}
Add(Hub,13761919,84,98)
{
link(onEvent1,7626156:doGetRGB,[])
link(onEvent2,9663556:doEvent1,[])
}
Add(DoData,2738912,735,42)
{
link(onEventData,970376:onClick,[(799,48)(799,34)])
}
Add(LineBreakEx,7842488,203,182)
{
Caption="Click"
}
Add(LineBreakEx,6943629,665,28)
{
Caption="Refresh"
Type=1
link(OnEvent,970376:onRefresh,[(805,34)(805,27)])
}
Add(LineBreakEx,11903065,203,168)
{
Caption="Refresh"
}
Add(LineBreakEx,633490,63,42)
{
Caption="Font"
}
Add(LineBreakEx,10102927,588,427)
{
Caption="Font"
Type=1
link(OnEvent,5233983:doFont,[])
}
END_SDK
Add(DoData,2401842,245,182)
{
link(onEventData,14134098:doInitColor,[])
link(Data,11121812:CurrentColor,[])
}
Add(PaintBox,10820786,329,126)
{
Left=160
Top=15
Width=85
Height=55
Point(Width)
Point(Height)
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,14134098:doMouseDown,[(373,139)(373,167)(317,167)(317,195)])
link(onMouseUp,14134098:doMouseUp,[(373,146)(373,174)(317,174)(317,202)])
}
Add(ColorBoxEx,11121812,245,126)
{
Left=10
Top=20
Width=130
Height=21
Font=[MS Sans Serif,8,1,0,1]
DefColor=-16777201
Gradient=1
LightColor=14737632
DarkColor=12632256
link(onClick,1465141:doWork1,[(289,132)(289,158)(228,158)])
}
Add(HubEx,1465141,224,175)
{
link(onEvent,2401842:doData,[])
}
Add(Edit,4128138,350,77)
{
Left=10
Top=50
Width=125
Font=[MS Sans Serif,8,1,0,1]
Text="Привет"
link(onChange,1465141:doWork3,[(391,83)(391,220)(228,220)])
}


Внимание! Для схемы нужен ColorBox_4_00 от nesco и исправленный компоненты с SVN (ссылки даны выше)
карма: 22

0