Вверх ↑
Разработчик
Ответов: 26151
Рейтинг: 2127
#1: 2007-11-26 03:29:01 ЛС | профиль | цитата
Андрей., но возьми и отрисуй сам кнопку в графике, ничего сложного.

------------ Дoбавленo:


Андрей., вот тебе ручная отрисовка кнопки на любой цвет. Полный аналог обычного батона (настроена сначала была именно на мышином цвете), но в штатных компонентах были обнаружены некоторые мелкие баги, вот ссылки на исправленные и улучшенные компоненты

[svn]Img_Text.pas[/svn] добавлена переменная TextHeight (странно, почему раньше не сделали?)
[svn]ToRGB.pas[/svn] исправлен баг с преобразованием системных цветов

Собственно, схема


Add(MainForm,5903361,49,77)
{
Left=20
Top=105
Height=108
link(onCreate,9663556:doEvent2,[])
}
Add(GetDataEx,8016236,336,581)
{
link(Data,10820786:Bitmap,[])
}
Add(Img_Text,5233983,735,623)
{
Font=[MS Sans Serif,8,1,0,1]
Text="Привет"
link(Bitmap,215649:Var3,[(741,590)])
link(X,5670597:Var,[])
link(Y,12474959:Var,[])
}
Add(GetDataEx,14783582,427,581)
{
Angle=3
link(Data,8016236:Var3,[])
}
Add(Math,327897,448,301)
{
OpType=1
Op2=65537
link(Op1,8056914:Var2,[])
}
Add(Img_Rectangle,12246576,434,623)
{
Color=16777215
Style=1
Point(BgColor)
link(onDraw,9245279:doDraw,[])
link(Bitmap,14783582:Var2,[])
link(Point1,2474544:Var3,[(447,338)])
link(Point2,9965031:Var2,[])
link(Color,9475966:Var2,[])
link(BgColor,9475966:Var3,[(468,576)])
}
Add(GetDataEx,2474544,343,329)
{
link(Data,600302:Point,[])
}
Add(Img_Rectangle,10679131,343,623)
{
Color=16777215
Style=1
Point(BgColor)
link(onDraw,12246576:doDraw,[])
link(Bitmap,8016236:Var2,[])
link(Point1,2474544:Var2,[])
link(Point2,6637878:Var2,[])
link(Color,14835089:Var2,[])
link(BgColor,14835089:Var3,[(377,576)])
}
Add(PaintBox,10820786,343,168)
{
Left=170
Top=20
Point(Width)
Point(Height)
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,12863040:doEvent1,[(387,181)(387,171)(93,171)(93,160)])
link(onMouseUp,9663556:doEvent1,[(387,188)(387,150)(93,150)(93,111)])
}
Add(PointXY,600302,350,287)
{
}
Add(PointXY,11110529,357,231)
{
link(X,3365414:Var2,[])
link(Y,5889064:Var2,[])
}
Add(Img_Rectangle,5637747,644,623)
{
Color=-16777201
BgColor=-16777201
Style=1
Point(BgColor)
link(onDraw,5233983:doDraw,[])
link(Bitmap,215649:Var2,[])
link(Point1,1944196:Point,[])
link(Point2,1071577:Var3,[(664,534)])
link(Color,2096516:Var2,[])
link(BgColor,2096516:Var3,[(678,576)])
}
Add(GetDataEx,215649,637,581)
{
Angle=3
link(Data,7438179:Var3,[])
}
Add(PointXY,1944196,651,315)
{
X=2
Y=2
}
Add(GetDataEx,9965031,441,371)
{
link(Data,327897:Result,[])
}
Add(GetDataEx,6637878,350,266)
{
link(Data,11110529:Point,[])
}
Add(GetDataEx,1071577,574,525)
{
link(Data,5402347:Result,[])
}
Add(GetDataEx,3365414,350,210)
{
link(Data,10820786:Width,[])
}
Add(Math,5402347,581,350)
{
OpType=1
Op2=131074
link(Op1,8056914:Var3,[(587,275)])
}
Add(Img_Rectangle,15787885,567,623)
{
Color=16777215
Style=1
Point(BgColor)
link(onDraw,5637747:doDraw,[])
link(Bitmap,7438179:Var2,[])
link(Point1,620727:Var3,[(580,373)])
link(Point2,1071577:Var2,[])
link(Color,4847683:Var2,[])
link(BgColor,4847683:Var3,[(601,576)])
}
Add(PointXY,2526611,518,315)
{
X=1
Y=1
}
Add(GetDataEx,620727,511,364)
{
link(Data,2526611:Point,[])
}
Add(GetDataEx,14057071,504,581)
{
Angle=3
link(Data,14783582:Var3,[])
}
Add(GetDataEx,1701047,581,175)
{
Angle=3
link(Data,3775179:Var3,[])
}
Add(Math,14013023,707,301)
{
OpType=1
ResultType=0
link(onResult,10272028:doOperation,[])
link(Op1,3365414:Var3,[(713,219)])
link(Op2,5233983:TextWidth,[(720,289)(730,289)(730,667)(741,667)])
}
Add(Hub,12863040,105,154)
{
OutCount=4
link(onEvent1,13625069:doWork2,[(146,160)(146,118)])
link(onEvent2,8232285:doWork2,[])
link(onEvent3,6208002:doWork2,[])
link(onEvent4,11753339:doWork,[(153,181)(153,230)])
}
Add(Hub,9663556,105,105)
{
InCount=2
OutCount=3
link(onEvent1,13625069:doWork1,[])
link(onEvent2,8232285:doWork1,[(291,118)])
link(onEvent3,6208002:doWork1,[(312,125)])
}
Add(HubEx,1315830,287,399)
{
Angle=1
link(onEvent,10679131:doDraw,[(291,629)])
}
Add(HubEx,6208002,308,161)
{
link(onEvent,10820786:doRefresh,[])
}
Add(Hub,16750378,217,301)
{
OutCount=16
link(onEvent1,7626156:doGetRGB,[(359,307)(359,125)])
link(onEvent2,327897:doOperation,[(349,314)(349,307)])
link(onEvent3,14013023:doOperation,[(478,321)(478,307)])
link(onEvent4,2713204:doOperation,[(481,328)(481,363)])
link(onEvent5,5402347:doOperation,[(415,335)(415,356)])
link(onEvent6,15816770:doCalc,[(391,342)(391,230)])
link(onEvent7,10853479:doCalc,[(443,349)(443,258)])
link(onEvent8,9366934:doCalc,[(359,356)(359,223)])
link(onEvent9,5033796:doCalc,[(419,363)(419,244)])
link(onEvent10,5157101:doIndex,[(307,370)(307,468)])
link(onEvent11,15027298:doIndex,[(352,377)(352,475)])
link(onEvent12,12374025:doIndex,[(391,384)(391,482)])
link(onEvent13,11920042:doIndex,[(419,391)(419,489)])
link(onEvent14,5670597:doIndex,[(499,398)(499,496)])
link(onEvent15,12474959:doIndex,[(503,405)(503,545)])
link(onEvent16,1315830:doWork2,[])
}
Add(GetDataEx,7438179,560,581)
{
Angle=3
link(Data,14057071:Var3,[])
}
Add(GetDataEx,3925080,525,406)
{
link(Data,15816770:Result,[])
}
Add(Img_Rectangle,9245279,511,623)
{
Color=16777215
Style=1
Point(BgColor)
link(onDraw,15787885:doDraw,[])
link(Bitmap,14057071:Var2,[])
link(Point1,620727:Var2,[])
link(Point2,9965031:Var3,[(531,380)])
link(Color,12178928:Var2,[])
link(BgColor,12178928:Var3,[(545,576)])
}
Add(Math,10272028,749,301)
{
OpType=7
Op2=2
ResultType=0
link(onResult,13649493:doOperation,[])
}
Add(GetDataEx,8056914,441,266)
{
Angle=3
link(Data,6637878:Var3,[])
}
Add(GetDataEx,7520929,462,175)
{
link(Data,7626156:R,[])
}
Add(GetDataEx,1770920,595,161)
{
Angle=3
link(Data,484058:Var3,[])
}
Add(GetDataEx,14835089,357,567)
{
link(Data,5157101:Var,[])
}
Add(GetIndexData,5157101,364,462)
{
link(Data1,4519652:Var2,[])
link(Data2,11799835:Var1,[(377,415)])
}
Add(GetDataEx,9206007,588,168)
{
Angle=3
link(Data,10340188:Var3,[])
}
Add(GetIndexData,15027298,455,469)
{
link(Data1,11799835:Var2,[])
link(Data2,3925080:Var1,[(468,415)])
}
Add(GetDataEx,9475966,448,567)
{
link(Data,15027298:Var,[])
}
Add(GetDataEx,5045324,581,406)
{
link(Data,5033796:Result,[])
}
Add(Math,2713204,714,357)
{
OpType=1
ResultType=0
link(onResult,13557068:doOperation,[])
link(Op1,5889064:Var3,[(720,212)])
link(Op2,5233983:TextHeight,[(727,345)(737,345)(737,667)(748,667)])
}
Add(Math,13557068,756,357)
{
OpType=7
Op2=2
ResultType=0
link(onResult,5449238:doOperation,[])
}
Add(GetDataEx,5889064,357,203)
{
link(Data,10820786:Height,[])
}
Add(GetDataEx,8495578,476,161)
{
link(Data,7626156:B,[])
}
Add(GetDataEx,7431247,469,168)
{
link(Data,7626156:G,[])
}
Add(GetIndexData,12374025,532,476)
{
link(Data1,3925080:Var2,[])
link(Data2,5045324:Var1,[(545,415)])
}
Add(GetDataEx,3775179,525,175)
{
Angle=3
link(Data,7520929:Var3,[])
}
Add(GetDataEx,484058,539,161)
{
Angle=3
link(Data,8495578:Var3,[])
}
Add(GetIndexData,11920042,588,483)
{
link(Data1,5045324:Var2,[])
link(Data2,4519652:Var3,[(601,429)])
}
Add(RGB,5389150,665,119)
{
}
Add(GetDataEx,10340188,532,168)
{
Angle=3
link(Data,7431247:Var3,[])
}
Add(GetDataEx,4847683,581,567)
{
link(Data,11920042:Var,[])
}
Add(GetDataEx,2096516,658,567)
{
link(Data,5389150:Color,[])
}
Add(GetIndexData,5670597,749,490)
{
link(Data1,10272028:Result,[])
link(Data2,13649493:Result,[(762,446)(797,446)])
}
Add(GetIndexData,12474959,756,539)
{
link(Data1,13557068:Result,[])
link(Data2,5449238:Result,[(769,502)(804,502)])
}
Add(Math,13649493,791,301)
{
Op2=1
ResultType=0
}
Add(Math,5449238,798,357)
{
Op2=1
ResultType=0
}
Add(GetDataEx,11799835,448,406)
{
link(Data,10853479:Result,[(461,351)(643,351)])
}
Add(ChanelToIndex,13625069,154,105)
{
link(onIndex,16750378:doEvent1,[(202,111)(202,307)])
}
Add(HubEx,8232285,287,154)
{
Angle=1
link(onEvent,1315830:doWork1,[])
}
Add(GetDataEx,4519652,357,420)
{
link(Data,9366934:Result,[(370,375)(475,375)])
}
Add(GetDataEx,12178928,525,567)
{
link(Data,12374025:Var,[])
}
Add(MathParse,10853479,637,252)
{
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(X1,1701047:Var3,[(643,184)])
link(X2,9206007:Var3,[(650,177)])
link(X3,1770920:Var3,[(657,170)])
}
Add(ToRGB,7626156,469,119)
{
Color=65535
link(onResult,5389150:doRGB,[])
}
Add(MathParse,9366934,469,217)
{
DataCount=3
MathStr="max(0,(%1 - 120))+max (0,(%2 -120)) *256 +max(0, (%3 - 120)) *65536"
ResultType=0
link(X1,7520929:Var2,[])
link(X2,7431247:Var2,[])
link(X3,8495578:Var2,[])
}
Add(MathParse,15816770,532,224)
{
DataCount=3
MathStr="max(0,(%1 - 60))+max (0,(%2 - 60)) *256 +max(0, (%3 - 60)) *65536"
ResultType=0
link(X1,3775179:Var2,[])
link(X2,10340188:Var2,[])
link(X3,484058:Var2,[])
}
Add(MathParse,5033796,588,238)
{
DataCount=3
MathStr="max(0,(%1 - 30))+max (0,(%2 - 30)) *256 +max(0, (%3 - 30)) *65536"
ResultType=0
link(X1,1701047:Var2,[])
link(X2,9206007:Var2,[])
link(X3,1770920:Var2,[])
}
Add(Check,11753339,168,224)
{
Caption="onClick"
}


В мультик сам затолкаешь, если понравится

Все можно сделать, если очень захотеть
карма: 22

0