Вверх ↑
Этот топик читают: Гость
Ответов: 416
Рейтинг: 57
#1: 2010-01-24 13:13:27 ЛС | профиль | цитата
В элементе ImgBtn состояние кнопки задается картинками. Нельзя ли в этот компонент добавить свойство плавной замены одного изображения на другое? (Это позволило бы создавать очень красивые кнопки)
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#2: 2010-01-24 13:23:11 ЛС | профиль | цитата
Poputchik, старые, проверенные компоненты трогаться не будут. Данная фича существенно увеличивает код компонента, и будет его тянуть, даже у того, кому это не будет нужно

карма: 22

0
Ответов: 416
Рейтинг: 57
#3: 2010-01-24 13:41:26 ЛС | профиль | цитата
Может на его основе новый сделать? А старый не трогать!

Может кого нибудь это заинтересует, из тех кто может делать компоненты, и он сделает нестандартный компонент. (К сожалению я сам в программировании полный ноль)
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#4: 2010-01-24 13:46:49 ЛС | профиль | цитата
Тут у нас Assasin рвался в бой , может он заинтересуется
карма: 22

0
Ответов: 499
Рейтинг: 1
#5: 2010-01-24 14:05:36 ЛС | профиль | цитата
обычная картинка на форме может выполнять те же ф-ии. по таймеру меняем кадры, отслеживаем положение мыши и клики, вроде никаких изысков.
Poputchik, скиньте ваши картинки, покажу о чем я.
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#6: 2010-01-24 14:24:12 ЛС | профиль | цитата
HikeR писал(а):
обычная картинка на форме может выполнять те же ф-ии. по таймеру меняем кадры

Кадры проникновения картинки в картинку еще построить надо. Посмотри-ка, как построени компонент Img_Tween, и сколько у него кода
Не зря же написали вопрос
Poputchik писал(а):
добавить свойство плавной замены одного изображения на другое
А это именно -- Img_Tween
карма: 22

0
Ответов: 416
Рейтинг: 57
#7: 2010-01-24 15:08:07 ЛС | профиль | цитата
HikeR, В простейшем случае кнопка воспроизвести: при наведении должна плавно начинать светится, картинки:
code_16614.txt

Мне нужна не десять картинок плавно сменяющихся, а 2 плавно переходящие одна в другую при "наведении мышки".
карма: 0

0
файлы: 1code_16614.txt [8.5KB] [233]
Ответов: 8960
Рейтинг: 824
#8: 2010-01-24 16:12:47 ЛС | профиль | цитата
Poputchik, термин "плавно" подрузамевает какое-то время изменения: 0,1 секунды или 10 секунд, а может и все 3600 секунд?
карма: 19

0
Ответов: 416
Рейтинг: 57
#9: 2010-01-24 16:19:52 ЛС | профиль | цитата
Леонид, В различных случаях это разное время. в данном мне нужно 2 сек.

P.S. Как можно сделать реакцию объекта на убирание мыши?
карма: 0

0
Ответов: 2437
Рейтинг: 693
#10: 2010-01-24 16:23:32 ЛС | профиль | цитата
Poputchik, вот тебе вариант: code_16617.txt
карма: 11

0
файлы: 1code_16617.txt [5.7KB] [469]
Ответов: 416
Рейтинг: 57
#11: 2010-01-24 16:26:04 ЛС | профиль | цитата
Вот схема в которой я пробую реализовать то о чем прошу, но нужно сделать так что бы реакция была не на нажатие, а на убирание мышы с кнопки.
code_16618.txt
------------ Дoбавленo в 16.31:
sla8a писал(а):
вот тебе вариант:

Почти. И в твоей и в моей схеме, если навести мышку повторно на кнопку, до истечения таймера, схема не корректно работать начинает.
карма: 0

0
файлы: 1code_16618.txt [5.5KB] [313]
Ответов: 2437
Рейтинг: 693
#12: 2010-01-24 16:33:18 ЛС | профиль | цитата
Poputchik, ну это уже мелочи приделать отключения таймера при достижения 0 или 255.
Хоть так:
Add(MainForm,6888504,427,357)
{
Width=348
Height=281
link(onCreate,11444436:doEvent1,[(464,377)(464,433)])
}
Add(Bitmap,11032321,518,378)
{
Picture=[ZIP7605000078DA5591DB6F1B4514C63F1E788C7767BC8E1B3B8DD71B27719A34216D923A4909ADEDF57DBDDE9B9D86B6092A52912A847800F13F212101E501F150CA232F289190E03D452D256E4469519D8B3933EB9474A49FCE5CCE7CE7CC3779EBF3B721C7329125CE1111E22DE872FFDAE0FCECD038036384C6A1C5A288C51992230C99248331164556573091E230CE6BD0931C89732A4686396231052CA622AE29E05106CE7988989F85F684B6C2550CC71812230AF45186199D63718A2137C3B07241C55296637E9C616A4C8541E78938479C7A896A2AC15F2334D568D8AF9C537D8158C729379DD4303DAEE2CA34C72FDF7F85BDDF77E0AD68B0721CE625AA37AB62DEE098D219D289411DF11EBA2B38AB7F5A8F47C3378A771BE4C1DCA4820269FDFAE05B1C3CF90387872FF0B2DBC55691C35F63282C70E42E44E57B8487A3E4A7A8A1C5D819CD10E1FDE99EC8115E2F66553496A3D8F9E91BEC3FD943BF7F82E37E1FBDA39778D17D8A3B058EE632C7D539F22CAB20A347904C90BFC3AAF4EB0DFDD860AD45A49FD914C3EAAC429E30ECFEF85DD83F69F74FFAB28E88BD5E0FFF1C3C85738563FD6214B306436A847C8A696FFC83F85B555531A446C05505C3E453665491FFD95E53B0F3E03E0EFE7C14F64FBAB28EAC15BEE788EA3C3FF80BF319157A6248FE1F67438830050A692A8A02633C0D63625CC6A949038BB3291496C6B0659E97FDEF3F7E146A8ADE4FF5077E9DF45EE1DF678FB1FA4E0A0B333AA627D3C84EE8481BBAD44B670C98A522F26601A5B2894A250FBBBA8EF79B397C1C2C84FD933FFD9363D9F3690DE9CFB32E3EF217B069AFC0ABAFA25109358AE675A959364DA228F7CC4AE97FFDFA35BAB386BBEE65EC3EBC8F2EE91F0FFCEF1DBEC2DFDD7D7CB639877BC1256CD93974ACABF24EBD7A1DE5523ED429992895846601B57A15E56A55C67AAD04A751C00D7B1D1F7A2BD879F8B5F4FF887C784EBA5FDC9EC7A79DCB7496C3B6F7AECCF3AC3C1A8D12AC7A0116DDAFD62A12A129A2D56CA0D96CCAD8B2EB70ED32365D13DBEE7BF8F9872FB1F7DB2EEE6D2CE1938D1CEE7656A5EE2D2F0FBF65C2A15CAF5541DDAEC16ED6D0229D5AA321D775CB824D386E0B8EE384D16DA2ED35D171ABB8E997B11D947127C8E38336E11771BB53C4CDA0848EDF80EFD6E051BED37261D37DD7B3E5DAF51C894D7A023F70086F808336B1D16EE246C7C256A786CD761DB7067123B0084722F2DB83FCA0EDC2F57D784120F783B60F9FD662FE1F39234AA7]
}
Add(Bitmap,12803345,560,378)
{
Picture=[ZIP7605000078DA4D927950D55518869FFEA899CC9C69509372214111C4050D4C1094DD0A2815421431B7284388E5B25D1091FDB209E8650B900B8A0BA0C2952BFB0511B729171C2A5714C932B750C361FB75609CA933F3CC77B6EFFDBE79CFB175097993B1612E9823982298207803BDB1FD15AFCFFF3FE21C2D09323721D4C69C08470B421D3F4166B310B98309D1F6C644DACE22CAC688487B53426DCD0877588A9FA5297ECB16E26F3D1F99C33C02ED0C0972321E2374A5D0729A4B88FD6C625C1690EAA6CFE1C0E5B4677AA2CD74A336CD95C6DCB568F6BA7322630DEA0C776AD2D650A3704693E24A7DE66ADA7EF4A2B9680327B33DD0A47A529FBA81E68C2D34A56FA6256D0BF509DEECF7B527C56D01D9AE86546DB742136C45BDDC1AF54E1BCA23EDC897BBF28B369FFEBB4D6484B85214E9C4819D2B502B1C50A7D852A9B0419DB692BA64271AE2458C75A446E49D943B712ACA9943BED664B91BA1749E43B99719659EB328F1D447B9762669EBE721F7B2A4ABF528FD8F7E45921E220D5E27E61B0BD27C3F26DB7F01B981A664F91850FCBD112A1FC136430ABD0D28F034A0709D11796BE7A214FAA3FD27D94D256EF944921D3E20DA4E57BCC374029D8DB9D95ACED0939B48C37DA2C63F0211FB6EF083FB62C2D61812B37A86F0780A719F4D266EE544121D2611BB428758AB49289CF4D8B7CA84CCD5B3C51B4F4766F93E7E669308B1FE90703B3D429C3EE2617B19D293D1FE5FF17244E2B9605820BDFA1BE9F90D821D0D08739826FEC614822C7408B3988C7CE964A296E8126FAB4F96AB29BB9D17136835136FE3F16C9E3F8E6FCDC6B163D904023E9DC1ED5615038FEF08FD110686A53124491A5B4BD290F06CB4CE2DD699E9B2C954976D2693D9AA3F015F431D7659E893ED624ED417567CBD480F67FDF1B8CC7A1BB7B9E3D8B064225E1653B9DD51CDCBBFEE333820F487A431860687FFD31F7931E6D7E7A63A38CE7917678377F0307A8F55D3DE62FB225D92BF5C4275620895F1411487FB5018B61565B007FB82BE42E1EF4E6763057D7FDC15FE8B9E475E23BC92069F223DEB41BE633DBB43BC8991799210BE91E4306FD22336911BBD8D72853F15A9FE1427F9B15F1140496604CAA40072927D498DD942B4CC834BE7AB79FAAC5B68F633382CBC909E31F8E206B1615E24447A9328DF4846A40FB97181142842294C9753B42782E2D4508A92FC294D0EA0342588964359B45597D0A656A139ACA4AA248552E52E2E9D3E41DFA351FF850F2F7E4799188C2A5DC6A1EC508E17EE46A34A15B9B97454A968A928A6F578A9D05171A1F6003F0BBD83094114C5CBE8D2AAB9D050CDD986939CAA2AE354858A4AD55E4E6B8E72AFEB32F9E94994652B28CB8CA3767F3ADA23B9345515D1A43E4863DD51EA049AC64ADACED4D2DC728CB3DA63749EA9A13039947C4510D2C0031EF676D17DBB93EEEECB5CBBAAE5A7F3B574682B6969383C76BFBDE90857CEA9B975B591EB9D5AAEFF76915B773AB9D7D349EF836BF4F45CA157F067EF551EDFBF8CD47F97DC047F1A93BFE3624134ED0571B4E427D09CBB8B6665142D39721AF6C8A8CB9451AB08A4253B8433CA08B4D9619CCE8F45A34C4493A3A0392F056D4E12ED790A3AC4BC4D19CF85FC24CEE5C5519714C8BFAFF435C4]
}
Add(PaintBox,5729304,609,378)
{
Left=155
Top=155
Width=24
Height=14
Color=-16777196
Cursor=2
HintManager="button"
Point(onMouseMove)
link(onMouseMove,9603908:doWork1,[(653,391)(653,321)(127,321)(127,454)])
}
Add(Img_Tween,3750590,553,427)
{
link(onTween,6796167:doDraw,[])
link(BitmapA,11032321:Bitmap,[(559,418)(524,418)])
link(BitmapB,12803345:Bitmap,[])
}
Add(Img_Bmp,6796167,609,427)
{
link(onDraw,5729304:doRefresh,[(647,433)(647,416)(597,416)(597,384)])
link(Bitmap,5729304:Bitmap,[])
}
Add(Hub,11444436,518,427)
{
link(onEvent1,3750590:doLoad,[])
link(onEvent2,10778096:doWork2,[])
}
Add(Timer,15723528,273,448)
{
Interval=50
Enable=1
Point(onStop)
link(onTimer,11328901:doEvent,[])
}
Add(Counter,9937636,371,448)
{
Max=250
Step=10
link(onNext,2229193:doEvent1,[])
}
Add(ChangeMon,13453459,217,448)
{
link(onData,15723528:doTimer,[])
}
Add(HubEx,10778096,537,434)
{
link(onEvent,3750590:doTween,[])
}
Add(IndexToChanel,11328901,329,448)
{
Point(Index)
link(onEvent1,9937636:doNext,[])
link(onEvent2,9937636:doPrev,[])
link(Index,10679848:Value,[(335,440)(324,440)(324,491)(181,491)])
}
Add(ChanelToIndex,9603908,133,448)
{
link(onIndex,10679848:doValue,[])
}
Add(Memory,10679848,175,448)
{
Default=Integer(0)
link(onData,13453459:doData,[])
}
Add(UserHintManager,1187801,84,441)
{
Name="button"
link(onHide,9603908:doWork2,[])
}
Add(Hub,2229193,413,448)
{
OutCount=3
link(onEvent1,10778096:doWork3,[(541,454)])
link(onEvent2,12403227:doCase,[])
link(onEvent3,14483175:doEvent,[(451,468)(451,496)])
}
Add(Case,12403227,469,455)
{
Value=Integer(250)
link(onTrue,4200681:doWork1,[(520,468)])
}
Add(IndexToChanel,14483175,469,490)
{
Count=1
link(onEvent1,4200681:doWork2,[])
}
Add(HubEx,4200681,516,490)
{
Angle=1
link(onEvent,15723528:doStop,[(520,539)(256,539)(256,461)])
}



карма: 11

0
Ответов: 416
Рейтинг: 57
#13: 2010-01-24 17:04:50 ЛС | профиль | цитата
sla8a, Попробовал объединить твою и свою схему:
code_16621.txt
Есть один недостаток. Кнопки иногда мерцают при передвижении мышки по ним и не всегда сразу срабатывают. Думал из-за дырявого изображении. Вроде нет дыр в изображении и при медленном перемещении по кнопке все ок. В чем может быть проблема?
(Особенно заметно при быстром перемещении по кнопкам)

------------ Дoбавленo в 17.35:
Вот что получилось в итоге (Может еще кому будет полезно):

Add(Image,8379961,490,156)
{
Left=150
Top=85
Width=24
Height=14
Visible=1
Picture=[ZIP7605000078DA5591DB6F1B4514C63F1E788C7767BC8E1B3B8DD71B27719A34216D923A4909ADEDF57DBDDE9B9D86B6092A52912A847800F13F212101E501F150CA232F289190E03D452D256E4469519D8B3933EB9474A49FCE5CCE7CE7CC3779EBF3B721C7329125CE1111E22DE872FFDAE0FCECD038036384C6A1C5A288C51992230C99248331164556573091E230CE6BD0931C89732A4686396231052CA622AE29E05106CE7988989F85F684B6C2550CC71812230AF45186199D63718A2137C3B07241C55296637E9C616A4C8541E78938479C7A896A2AC15F2334D568D8AF9C537D8158C729379DD4303DAEE2CA34C72FDF7F85BDDF77E0AD68B0721CE625AA37AB62DEE098D219D289411DF11EBA2B38AB7F5A8F47C3378A771BE4C1DCA4820269FDFAE05B1C3CF90387872FF0B2DBC55691C35F63282C70E42E44E57B8487A3E4A7A8A1C5D819CD10E1FDE99EC8115E2F66553496A3D8F9E91BEC3FD943BF7F82E37E1FBDA39778D17D8A3B058EE632C7D539F22CAB20A347904C90BFC3AAF4EB0DFDD860AD45A49FD914C3EAAC429E30ECFEF85DD83F69F74FFAB28E88BD5E0FFF1C3C85738563FD6214B306436A847C8A696FFC83F85B555531A446C05505C3E453665491FFD95E53B0F3E03E0EFE7C14F64FBAB28EAC15BEE788EA3C3FF80BF319157A6248FE1F67438830050A692A8A02633C0D63625CC6A949038BB3291496C6B0659E97FDEF3F7E146A8ADE4FF5077E9DF45EE1DF678FB1FA4E0A0B333AA627D3C84EE8481BBAD44B670C98A522F26601A5B2894A250FBBBA8EF79B397C1C2C84FD933FFD9363D9F3690DE9CFB32E3EF217B069AFC0ABAFA25109358AE675A959364DA228F7CC4AE97FFDFA35BAB386BBEE65EC3EBC8F2EE91F0FFCEF1DBEC2DFDD7D7CB639877BC1256CD93974ACABF24EBD7A1DE5523ED429992895846601B57A15E56A55C67AAD04A751C00D7B1D1F7A2BD879F8B5F4FF887C784EBA5FDC9EC7A79DCB7496C3B6F7AECCF3AC3C1A8D12AC7A0116DDAFD62A12A129A2D56CA0D96CCAD8B2EB70ED32365D13DBEE7BF8F9872FB1F7DB2EEE6D2CE1938D1CEE7656A5EE2D2F0FBF65C2A15CAF5541DDAEC16ED6D0229D5AA321D775CB824D386E0B8EE384D16DA2ED35D171ABB8E997B11D947127C8E38336E11771BB53C4CDA0848EDF80EFD6E051BED37261D37DD7B3E5DAF51C894D7A023F70086F808336B1D16EE246C7C256A786CD761DB7067123B0084722F2DB83FCA0EDC2F57D784120F783B60F9FD662FE1F39234AA7]
}
Add(Image,4126736,532,156)
{
Left=180
Top=85
Width=24
Height=14
Visible=1
Picture=[ZIP7605000078DA4D927950D55518869FFEA899CC9C69509372214111C4050D4C1094DD0A2815421431B7284388E5B25D1091FDB209E8650B900B8A0BA0C2952BFB0511B729171C2A5714C932B750C361FB75609CA933F3CC77B6EFFDBE79CFB175097993B1612E9823982298207803BDB1FD15AFCFFF3FE21C2D09323721D4C69C08470B421D3F4166B310B98309D1F6C644DACE22CAC688487B53426DCD0877588A9FA5297ECB16E26F3D1F99C33C02ED0C0972321E2374A5D0729A4B88FD6C625C1690EAA6CFE1C0E5B4677AA2CD74A336CD95C6DCB568F6BA7322630DEA0C776AD2D650A3704693E24A7DE66ADA7EF4A2B9680327B33DD0A47A529FBA81E68C2D34A56FA6256D0BF509DEECF7B527C56D01D9AE86546DB742136C45BDDC1AF54E1BCA23EDC897BBF28B369FFEBB4D6484B85214E9C4819D2B502B1C50A7D852A9B0419DB692BA64271AE2458C75A446E49D943B712ACA9943BED664B91BA1749E43B99719659EB328F1D447B9762669EBE721F7B2A4ABF528FD8F7E45921E220D5E27E61B0BD27C3F26DB7F01B981A664F91850FCBD112A1FC136430ABD0D28F034A0709D11796BE7A214FAA3FD27D94D256EF944921D3E20DA4E57BCC374029D8DB9D95ACED0939B48C37DA2C63F0211FB6EF083FB62C2D61812B37A86F0780A719F4D266EE544121D2611BB428758AB49289CF4D8B7CA84CCD5B3C51B4F4766F93E7E669308B1FE90703B3D429C3EE2617B19D293D1FE5FF17244E2B9605820BDFA1BE9F90D821D0D08739826FEC614822C7408B3988C7CE964A296E8126FAB4F96AB29BB9D17136835136FE3F16C9E3F8E6FCDC6B163D904023E9DC1ED5615038FEF08FD110686A53124491A5B4BD290F06CB4CE2DD699E9B2C954976D2693D9AA3F015F431D7659E893ED624ED417567CBD480F67FDF1B8CC7A1BB7B9E3D8B064225E1653B9DD51CDCBBFEE333820F487A431860687FFD31F7931E6D7E7A63A38CE7917678377F0307A8F55D3DE62FB225D92BF5C4275620895F1411487FB5018B61565B007FB82BE42E1EF4E6763057D7FDC15FE8B9E475E23BC92069F223DEB41BE633DBB43BC8991799210BE91E4306FD22336911BBD8D72853F15A9FE1427F9B15F1140496604CAA40072927D498DD942B4CC834BE7AB79FAAC5B68F633382CBC909E31F8E206B1615E24447A9328DF4846A40FB97181142842294C9753B42782E2D4508A92FC294D0EA0342588964359B45597D0A656A139ACA4AA248552E52E2E9D3E41DFA351FF850F2F7E4799188C2A5DC6A1EC508E17EE46A34A15B9B97454A968A928A6F578A9D05171A1F6003F0BBD83094114C5CBE8D2AAB9D050CDD986939CAA2AE354858A4AD55E4E6B8E72AFEB32F9E94994652B28CB8CA3767F3ADA23B9345515D1A43E4863DD51EA049AC64ADACED4D2DC728CB3DA63749EA9A13039947C4510D2C0031EF676D17DBB93EEEECB5CBBAAE5A7F3B574682B6969383C76BFBDE90857CEA9B975B591EB9D5AAEFF76915B773AB9D7D349EF836BF4F45CA157F067EF551EDFBF8CD47F97DC047F1A93BFE3624134ED0571B4E427D09CBB8B6665142D39721AF6C8A8CB9451AB08A4253B8433CA08B4D9619CCE8F45A34C4493A3A0392F056D4E12ED790A3AC4BC4D19CF85FC24CEE5C5519714C8BFAFF435C4]
}
Add(Timer,9411596,350,241)
{
Interval=20
Enable=1
AutoStop=51
Point(onStop)
link(onTimer,9516682:doOperation,[])
}
Add(Image,5149836,570,210)
{
Left=185
Top=105
Width=24
Height=14
Name="button"
HintManager="button"
Point(onMouseMove)
link(onMouseMove,15002155:In,[])
}
Add(MainForm,7983791,445,196)
{
Caption="Пример использования Img_Tween"
link(onCreate,12653708:doEvent1,[])
}
Add(Img_Tween,13840656,525,210)
{
link(onTween,5149836:doLoad,[])
link(BitmapA,8379961:ImageBitmap,[(531,195)(496,195)])
link(BitmapB,4126736:ImageBitmap,[])
}
Add(Hub,7450916,492,241)
{
link(onEvent1,5064735:doWork3,[(514,247)])
link(onEvent2,10752870:doCase,[])
}
Add(Math,9516682,397,241)
{
OpType=1
Op2=5
link(onResult,5779710:doValue,[])
link(Op1,10129724:Var,[])
}
Add(Memory,5779710,449,241)
{
Default=Integer(255)
link(onData,7450916:doEvent1,[])
}
Add(Hub,12653708,490,210)
{
link(onEvent1,13840656:doLoad,[])
link(onEvent2,5064735:doWork2,[])
}
Add(HubEx,5064735,510,217)
{
link(onEvent,13840656:doTween,[])
}
Add(UserHintManager,2058391,301,227)
{
Name="button"
link(onHide,9411596:doTimer,[])
}
Add(Case,10752870,525,248)
{
Value=Integer(255)
link(onTrue,4809650:In,[])
}
Add(LineBreak,16050307,301,262)
{
Caption="stop"
link(Out,9411596:doStop,[(341,268)(341,254)])
Primary=[4809650,267,-7]
}
Add(LineBreak,507918,449,281)
{
Type=1
link(Data,5779710:Value,[])
Primary=[10129724,-52,-64]
}
Add(LineBreak,68818,398,279)
{
Caption="..."
link(Out,5779710:doClear,[(436,285)(436,254)])
Primary=[15002155,215,-62]
}

карма: 0

0
файлы: 1code_16621.txt [6.3KB] [342]
Ответов: 2437
Рейтинг: 693
#14: 2010-01-24 18:19:41 ЛС | профиль | цитата
Poputchik, Timer с Interval=1 наверно лучше изменить.
Справка писал(а):
Замечания: Одной из особенностью работы таймеров в ОС Windows является то, что на практике события не смогут приходить чаще, чем с задержкой в 20-30 мс. Поэтому если для вашего приложения это принципиально используйте элемент Thread

карма: 11

0
Ответов: 416
Рейтинг: 57
#15: 2010-01-24 18:23:39 ЛС | профиль | цитата
sla8a писал(а):
Timer с Interval=1 наверно лучше изменить.
Не знал что нельзя меньше 20 ставить. Исправил.
карма: 0

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