Андрей. писал(а):
рисунок в виде кнопки работает оччень медленно по сравнению с кнопкойИ черт тебя вообще поймешь, че тебе надо. В начале темы ты просил цветную кнопку (я еще написал, что не поддерживается цвет отличный от мышиного). Леонид нарисовал схему, как отрисовать прямоугольник. Затем ты спросил как на нем отрисовать текст поверх. И потом выясняется, что тебе надо совсем не это. Я сделал компонент, который выбирает цвета из цветовой схемы -- 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 (ссылки даны выше)