Вверх ↑
Этот топик читают: Гость
Ответов: 13
Рейтинг: 0
#1: 2013-11-14 07:52:10 ЛС | профиль | цитата
Цель была сделать таймер минут, от 1 и сколько угодно хоть 180 минут можно вводить..
и как будильничек чтобы после отсчета энного кол-ва минут подавал сигнал.
Также сделал сразу контроль ошибки если установлен "ноль" ничего не происходит.
(хотя максимальное кол-во не контролировал не тестировал! но кому в голову придет тестировать таймер
999 минут или более))) )
Диод и вывод секунд добавил для удобства чтобы было видно что таймер работает...
Да вроде всё работает как надо кроме нижней части

на таймере после события onStop происходит:
1:
сброс счетчиков "CounterEx" минут и секунд
2: так как счетчики сброшены, дополнительно
"ноль" отправляется через "IntToStr" в поле вывода минут и секунд...
3: вырубается светодиод который в свою очередь врубает кнопку "старт" и вырубает кнопку "стоп"
(может не самое лучшее решение пришло мне в голову, загнать отключение кнопок через светодиод, но получилось очень удобно)
4: играет сигнал или музыка... "PlaySound"

Вот тут и загвоздка.
Дело в том что сигнал играет и при нажатии на кнопку "стоп" так как все-равно таймер выводит событие "onStop"
правильно работает лишь то что событие onStop происходит и после отработки таймера через указанное кол-во минут
когда и должен подаваться сигнал.
И вот теперь пытаюсь найти решение чтобы при нажатии на кнопку "Стоп" музыка не играла.

Поясню...
Нижний "Edit" он вообще не нужен, поставил просто чтобы видеть что выдаёт "Memory"
А именно какая кнопка нажата. И я планировал что вот этот "IndexToChanel"
будет считывать из "Memory" ноль или единицу т.е. если была нажата кнопка "старт" значил логично что таймер
отработал сам и сигналмузыка должна играть, если была нажата кнопка "стоп" то музыка не играет.
Но только отдалённо догадываюсь почему это не работает...
На первом канале "IndexToChanel" вообще не срабатывает сигнал, на втором канале по прежнему
в обоих случаях и когда отрабатывает таймер и когда нажата кнопка "стоп".

Подскажите у кого какие идеи как сделать чтобы при нажатии на кнопку "стоп" - "PlaySound" не работал?
--
Ну и вообще по схеме может что-либо лишнее и что-то можно упростить...
Я то дилетант в этом деле, нагородил целый лес...
Если я кнопку стоп вырубаю и врубаю только после того
как заработал таймер то возможно проверка что таймер работает после нажатия на кнопку "стоп" - это
на самом деле лишнее... Так сам кое чего вижу что нагородил...

А и ещё вопрос, как мне зациклить "PlaySound" чтобы после отработки таймера он проигрывал указанную мелодию энное кол-во раз???
Я конечно представляю что можно через цикл for, на паскале я знаю как это сделать
но тут у меня есть сомнение что элемент For будет ожидать окончания проигрывания файла элементом "PlaySound".
Тут не совсем понимаю как это реализовать.

------------ Дoбавленo в 07.52:
Dimon777 писал(а):
А и ещё вопрос, как мне зациклить "PlaySound" чтобы после отработки таймера он проигрывал указанную мелодию энное кол-во раз???
Я конечно представляю что можно через цикл for, на паскале я знаю как это сделать
но тут у меня есть сомнение что элемент For будет ожидать окончания проигрывания файла элементом "PlaySound".
Тут не совсем понимаю как это реализовать.

Этот вопрос я решил вот так:
Может есть еще более простые способы?
Оказалось не сложно после того как я догадался выставить PlayType: SND_SYNC
Конечно до этого зациклить не мог по тому что PlaySound возвращал управления после начала проигрывания.
----
Make(delphi)
ver(4.04 build 185)
Add(MainForm,2953706,56,70)
{
Width=636
Height=138
Caption="Таймер"
}
Add(ChildPanel,11201473,126,56)
{
}
BEGIN_SDK
Add(EditMulti,6664656,21,21)
{
Width=783
Height=277
}
Add(Panel,10952720,35,105)
{
Left=10
Top=5
Width=609
Height=95
BevelInner=1
BevelOuter=2
}
Add(Edit,14216317,140,112)
{
Left=30
Top=20
Width=45
Hint="минуты"
Text="0"
Alignment=2
DataType=2
}
Add(If_else,10559353,140,182)
{
Op2=Integer(0)
link(onFalse,6571022:doOperation,[])
link(Op1,11377847:Var2,[])
}
Add(Timer,16538377,364,196)
{
Enable=1
AutoStop=1
Point(doAutoStop)
Point(onStop)
link(onTimer,12672298:doNext,[(406,202)(406,181)])
link(onStop,517818:doEvent1,[])
}
Add(Math,6571022,189,189)
{
OpType=2
Op2=60
link(onResult,13233474:doEvent1,[])
link(Op1,11377847:Var3,[(195,166)])
}
Add(CounterEx,12672298,469,175)
{
Max=59
Point(doReset)
Point(onThroughMax)
link(onNext,1638401:doWork2,[])
link(onThroughMax,9479884:doNext,[])
}
Add(CounterEx,9479884,525,182)
{
Point(doReset)
link(onNext,2343702:doWork1,[(573,188)])
}
Add(PlaySound,7103322,609,126)
{
PlayType=0
Sound=[ZIPD620000078DAED5969B36C6575C66FA9545996060714C1A0094EC8E03C444C620820D13862053877E09EB1CFE9B9F7F0CEC39E7A3C7D7A38E7DC994B292825896522513417078C49142418419184281A252A563EE56B9EB5FB62E94F48957D87EABDFB7DD7BBC6673D6BEF0F5C77CD350FBEECBCF36EFCE38FFCD9CA56FB65CF3BEFBCF39E853FEFBAF8BCF2DFB3CEFB1DDC3972A87DE81358657EFBF9EDE7B79FFF571FFD1B7FCEDD50BFBAA3CDAF7ED1E637162A6D95A1058BBF462D7EB65A5BFD6B5BB18AE4597C534E2BABCB7D56292B9597B4565B5C3963A4F5423B2D0D7E354E1A672544B8A0AD8276A2A4EFC49DB5B8B5C6C2A6665A0A676D24ACACB10E730D088DB58C5483859D5A43B7B5C8AC1BDAA19369B7994CDAD560AAB6547F1CA793716FF74C31CE4CBB351235C5C2BECDA6BE31D407627ECBB2A81E89A639F3FB47B3FE7E518B3BCB55515F6DD7659C1F9589D91EE5ACDD0F4C77FD701073DDCFFC7C6854C4DBCB2BADFA5233CCE6A3819B9FD9CE755D746E0DE2CAE1F53AC761F2D4F16136CC4DC2C383C245DA66557B7C323A3A4C0BCE1A1FBC2909579A3AEFCE0A3E9844F5BCD7B8B999C45173B5E1BA36EE4E8CDBE9252C74B211EB46DD8E9B2BC3BE302AF623B555EFD437636D649CCAEE64A35A14DD1EB3BBA26965BDEE9BF549DFA693691C652EECCB9BE5B6AA754F85F698EE8CC6A6976776231246AFB7994CD2788DF575AD3B590EFBEDCDBAA8B7B687B5F66DA328E3B59A55816CDB42BB4CAEA77BA9523A1A9F08562B8C35A3B019CCBAF1B162C3EC38E82733C6EAED8027612BB4D6A7B57A844418C946B197D478B3B53D53D1B41F2403D3AAD7A27EC16A663BEBA6B54ED7B3411EE7F3316BB0685D0EDA5B9EDB693750FD6116FB8207326C6FB69021F341CD9D4837A2CCC86E11B5F3A0E6D295DAA42BFB054FFAA2515F8D13514F7794D93675E66B5B492FDCEAE6B14DDA7CEAABFD998DAD0C62667D9186DC381FB4ED30F5DE1961A2B54E1E6DD93E83A59112D596EF85416A4D16B685623C7243297D9AB46B2E11BA68B9A3695DE4CC38233B4ED57C16C4B94F6D806C4F3ACDA6C90C97C34E2B375B1D55D3735D8F275947F158770D4B531DCBA4BDD54A6C3650DD341F451B49BF299230D43D27474925DA299A01725D4691B2190F9C08782CE236877A83A8834837990C90E79D411605C6B543DFCBA5888C65CD1617306EA4E2611AC58EC5A6082B45D724858FBB23C5988922994A99EBEED068C6FA76AB99395BF454909866C7674C8EB2283688346F3692BE94965B013522990897E84ED8F31D6E84EE99B61EF48443BDE92C8E4D13B5C89CED1E2FB85161DB04359EC49D5EDEE49E054604CEF9A8E53C533E903D4BA5AF844E65907413ED4C94A6E4DAC893386089EF06E150773A2D262550A33BE97B40492356418DD9B8C8A23083AB64AE641F527514A746323DCCB5904238DE09F24147FB30B422D45C856247D514A29932914A1E07A18879AFC8B2ED89F6AED546A603B5123FF47AD48B753F0E0147220A75E68DCCBA990DA4E934BC6959CF93D484619A74A284E9BEE988C4186410AC91464491F57997DB79576AD909150B426F633F30DC79EE4C1828C7DA013034B179C153270CAFC7850620F60CE2ACFA45E852298CE770894DFA867BE9458769A612E1071E6ED7CDB6736DA545DA4BB8CD0CAC65CCC75C499DF8DE48AA540B1605DC58237B85F658A5B14DF1262B78086CCD9DF652CA569B3158655397E5DEDBA88DF070EDE16AAF8A4C668064C66D1CD8C4F6BA2815E476A4E396B52CF5CAA689002AC442368565D23A9FE8ACAB249C1F474C9B6E21101E6DA5401A05AACB789E21AA2AB11C49AC91CD4EA5495E109C042A6EA21639EF7BDB75B12A608914A1C2C12E73C3BE5642D212C98AD4252E3788632BB031371C8BAD343ED54A45118F38722AD1FD212EB58A4219A317C834F70607090DD709DE893DF6BBB48B18C42C6E03CCB974032F1367E0D68E95718CE37596DB2295B032EE307438458801613892391EA55E58AF5DEA6D18FB4820FB10324F9BA04ADC8A8502489B611FC960B047C8D832952A91C0D3D22630A71560114032D149AEB8893B8EB795CA9C705EA405839719E486DC26499624053A62D016B2AD0CCF8A2C45BAC53AEDB451964A289D16906A8592320482E43A2B648AD4415A296163D5450AA7523BEF39C70DCB020ABAF6B966266E0A2004BAB52C0AE374286D1C46505943B53C7369C219328C3703F81E97DEA74865D9D186A128F1E1C2152E02AE21F0DA726F556E38BC1FB4110CEB9943A7D11E3A2A152BC52DE2D54D8B2E93082A6F07520060FB2820A7390F28A2310881C4DFC2A1C533AA65C90C9C6F91995E850C5E045C3BEF522048E09350284EF90C0473CA30C1638EBAB52EE92146A9118C3B0E27008F559E486F924C6B8EE8A0C80C7212F6280454C7A810CFE334535A024F99604A709011EB5C060A22204305D6C358678143914A390A130E76796211D8C4680E5C21987448262419502B0E5100A94247F1A90717B2480AC175EA9437590F2B18EA9F9341AE486201792839E4AE240A0428474C219B0501BE7803A0D54E2A27438AACF61605E5219A43AE06F639D4398ACA682A17AA5C657CE690F84A086635E5A14373B28455040E1103CB82DB72AD8C62009408A96FA188541256653E6AD4DABADBEBDB76BDAE768EEDE6D59B96AAEEF4A74EC8A50F1E92A7FFFE53DDC3EFBE666DFFECFDA757DFF9FA0FCFEE7FF45EF1CE4BDEDAFEFC130F4C6EB8F8B25BEFFAC113771DBAF4C23F1F7FFBC75F6C5FFE7B6FB40FFCCF7747EF78EEC5CB9FFBE58F8E5FF3A28B6EBCEBC73FFFC2DA2B5EF027E3EFFCE21F6B973CFB0DC923FFFB9DE44DCF7955F38B3FFDDEEE35E75F74E0EE1FFDE4EE0FBDF0F9EF39F9E4D35F58BBE8396FCB1FFAC503D9DBCF7F55F5ECCF9FD8BDF6052FFEABBB9E7AFAEF6EB9F0FC6BF6BFFFF4FDC16B9FFBDAC6577FF6E8FEB5E7BF7CED9EA77E74C7875FF8FCEB761FFBE5979B57BEE02DFE9B4F3F6CDFF2BC57D7CEFEF4F193EF7BC38B2F6FFEC3CF1E3B79FD0517DF72F74F7EFAB7872FB9F0BD7B8F3CF5A5C62B9FFB46FFE0D30F9937BFE8F2D6D9FFFAFEF1EB5FF2FB1FBDF389FFFCE4475FFA92F71E7FFCA9B3C19517BC4D7DF9C907F277BCF0F2F67D4F3D76EAFD975C7AD39D8FFFE0D3475E73F1F5F3EFFCF7BFC8D73FFF0DECCB4F7E6BFC6717BCEAC8DFFCF03FEEF8C8C517BDEFD8B7FFFD33952B2E7CBBFFFA0FFE397DDB8BAE6C9DFDF1C3D31B2EB9F4A3271EFDE13D1BAF79E9B5E36F3D795F74E5056F6A7DF68987661F7CC52B97EEF8DEE377DEFC0717BD67FC8D27EE0BDEFA8A77B07B1FFBA7C1352F7DD5813B1E7DF48E83AF7BE55FCEBEF1DD7B82B7BCFC6AF9C5EF7DAD7FC31F5EB5FCB1871FBEFDD0E597DE50DCF7F067A3B75FFA6EFEB97FFBCAF687AE78D381630F7CFB93AB57BDFAFDA3FB1FB9D75C77C5BB6A9FFAD7AFEDDD7CD5EB974E7FEB91BF6E5C7DD9F5FEF30F9DED7FE0B237AE7FFCC1076F3B74D5A5D7269FFFE6A7A33F7DCDD5B53B1FF8DADE4DAFBBECC6F1D96F7CB2FDEE2BAE139FF9E6972637BDF98F568E7FF5EB9F08FFE2EA1BD34F7FE573F38DF7DC503D71EF3DBB5BEFBFE140F2F1CFDE911DBAE143D5D11D77EF776EBE71C51FBBF3983A72D3A135379916F5834B6B7267D6B7D5A5A586CDB2B87EF8E60DD1DDDD96ADB58D4A649DAA2E1D5CAA8FC6A34C7450E94537E59D7AA093E1C083EF58CAE6B8D50A6556248687CC758BCCB21870E5B3CCA2FDA6BD7E6A5810319301301415092A310A80E81E15C904B5780C0B21AA3D01780B61B2DC291E7500DFB927BCF4DD5E6169479A2516B56A8082898E3A7139950093133056143AB1475C33A17C9E270A4D4F0119A823D9BC57248A4500B214A8160B971739584827D60E50410897757BA9C22168715EF310420743D0FD4E800681BE1B86DC7507FD44C611D0153D210898C97B3DD0287C49A057D00E55DAEF626984769201123A01B8400F1018C7684399157180B69CC2518031C0B8D3719BFAB4A5B10B64DE03A14308432FE74C42A893512780B9203CA032C04F8709290639C2564B7EB3E08A6144B28074E8958478400CB1980A1D4C31D43B8D2CC748E320126D1C142201B8E31EBCE10141029B89170089B00050CD8502A42A8E2130C3A11C872E66516073690820D1D202AE13F8CD30C22D7852C6D01F5B0C2C9434822A3415E8058E84769340A604F1730912816E58F21B5812287C42E8AFE10B403C8E4D605BC95370A4607006101233A9A4F114B84A390055155D8297A271D1008A0955532B90C80158A0C942FC8C0023399880A79DC735F50F495E103414433B62192444D11516A0F5117A430EEED14D43B288F24001680D6685BF98F24479853D36038D458C8420620C33700AB609B289C80029E2C95F68B074B9D00DA3356835BAB0A2C9DAD3A18B995FAAC5B8EEC88352C221820C7186B6C15E8885FB486B5B06858494FCEA9C41380AACAF3CA4FCD5D256E414594CE64357ECA46700F0B1064B822FCB93A45E7CE06E8F5040882C95A5DE549EAECAE70B3054822EE7D8057B845E4853D4BAD2D499B8D589A89E7A96078D50BB6ED78956B51127DB93494F34372B2DD3DB19E7A255A9B1747A743E909BCB2B753FDEDF1FC8EA91F54EBA7B6ABF1F1E59BAB59EEC9D39B5CD2B076F6DB8E9C9637DBE7EF04823D9BBEDF444556E59AAA89DDB6EDF4D1A870F6EB0EDD36776EDD6A103AB7C74F2E3C78B6075E9482B99434CBC7AF050CD4DCF9C99B9DAA19B5782EEB1D3BB7967E5F06AD03B76E6442F5C5B3A58D5D3D367F6D2F6EAAD95B87FF4E43C6DAD1C5A6EE7FB1F3BB3AD2B4B07D7D8F0F8A9996DAC1C5C67FD13B71F2D3ACBB71CD8B2B35327B7656DF570D56C9FBE6DE6EA07217C70E2CCA901DB3AB8DC4A764F9F1CB0F503B7D6F4E8D889B9AF1F595A61FDA3B7EF67E1EAE195BA1DEEED0FF8E6EA7233199DBC6D626A476EDD6827D313C707ACBEBA1AA6F3937B79B071F0D03A1B9DBCFD7837DC5CABF1EECEEE50428B95BADB3D7D6AAC1AEBAB35D59DED4F32565DA984E9F4C489896BAC1DDEE0F9EC1866FFEA5A2DCA774FC0055B2B479AAE379FF7546B75B9C1FB7BFB531F6CAE6DC6E9F8D8348DABCBEB811D1FDBDDF69DCDD5BAEE4DF7B76D5859A9B26C767C6FC83797976BBA3B99F74DB8556989DE6CB66D2167ADE307BBB39E6E57AB81ED93F0EAF2CAA6ECCF8FCF33D158AB867634DBE9B2DAC646906C1F3D3E36EDF5239B819FCCC73EA8566A51B13D9FA5BCBEBCD694DDE974643BB5CD3ACFA74767296B566A31B261DA37ADCA6A5591423E866A3C1DCFC629ABAE6D34ED60BE3F3030A2CEFDF6B897045B1B5B38FBC45EC1614E5316D3F9D0B737B7DA6638DBDBB16175652B34E3BDF940D5D6D71BB63F9915B2B9BED110D9F6DEDED0B6D6D7AAE4E01DC7EA6BD538991E9D74596575ADE5067BFB3B49B4B55E8FD3E9DEC8753636EA5131DBDFED8AC6EA4A43F476277DD3DC80A0EE140E0C2AAB1B613A393E2B54BDB2D972A3194E6C6DAC36757FEFE824831CB86034DFC97863733370C3DD492E6BCB2B35D99BEC4F5246C7F8D16C3B0D2B6B9BA11F1FDD1B9A7665AD2EBBB3F93089362B75D1DDD9A380AF553A66B40BA7C3C696EC4FA63DD9C242D585AF325E5DAF745C7F3A2D646BAB16E1408CBECDF5F51A2B26F39D9CC3BF22DD9E0C534467AB6387F3DD816E6D54E0B5F1B4A7C3CA4683F766F39D24ACAD6D466E309DF44C73B3DA713D1CA39A954A43F5667BE324AEAD6F057E38DE46C4366B3C19CD50DDD5B532A0F3910BEBD526CFC7F36D176FAE6CB5939DE96CA083EA56A0B2D1B86F83DA167EDE81B1717D6BB3658BEDEDDC468D66A0D2DEA09F8BA0510B64BEBD33CC54D86E63B2CAF30CAD3CC0905760EE9121CDB444210895CAEE44F845106408A4D00D3CEEA0FD280C6B68FA4051706F602CC129E6FAC23BD109026A9E0584A0694A2CF49A859D10434A9EA347A1F1A003624F1CF3D8A66019601384A2005E477867D179D1DB5814E13BDA9EE534A450D7414BC2C88D460DD8C42D7AB44A8A11CE13D927062009D32D3DABA5A18D9A29834598F140622426634CB63465E310CC553420951D93FA0CDD4CA097502CC60E744F0F48E69A8C274331C2948D1B648906269C0C7998C640313069C69888C03600DEA5786804E18C1E70A00F6B5031A03E9A22BAABA471982CE5E896E88A600B7621C9781A6CE1ED3445EBD325E92A6360E8E1B1A3A830CE2374A70C0ACB324034DF506BB3C45FF00DE30D3433B042E36C4323108B39CDB0E83DC4579455A4A204D7D0199A94A6914FD364553EFE466412CC9B6422F442880D6635CCDC0A2C49124D342565905C961D97DA93F289490C8D620A81257A646872C47F861E5141B52C053910929E37D0C371491A5393C6299440D6946D531345408030F4E14B9AA2BF0A6867178FDF8900503317E04D8251CCA93F13A18085445E24CDCA44314ACE513E7587DEF0BFA1879E826C245A73EE1500310041A3B1060DD444211003F29926EE82F91507613AA5CC02F172BAF40F888A20BA664B8A413C867A3D510D2422FC2A4B2622E159EC7094B18A980A7C442CC91399A1EC200256321C6DF19D08D0E25E4953A0206D293951E96CF70C1159F0106227B011A4A824A4E43BECA65C92B2144C419654B634982BB3A066E619A97AF10283D831F900B1C7DC7CEE650651BEB220149D5C722D0A3065058970E7C2549231BBB824FBC8E38B55584721A1D389E391761412701E7A26A5F03D21FD17C48FFE836E34DDD3204FCF52162F5828DC70EB39D64734C89D7BE142C186A729AD4B822ACF99541256F22D3EB80B3FD33B96323C58602469469E2A43B62070B6746C998DA5B355594A257B53C4DD69992324B1A581E6DC026B17569764D2DAC502694A68D1F29C68185206E0DC88401BB19C2C2AB3CB960542BA95DA97447211344A3971EE65D3426AE915FDCC9C50725EBA2EA9B02DEB1C15A2A57E86E42E3283C494954A6234228A98CA85D1E549247461EEC2D92800C05119D832D9E000000D65C28207437908E5E57B2D7A3C55864C2D7C40D0EBCD3950015E097ACB45C12F5B0797A557166A9754BF4C52F820A3FC27F5284D200220520E082866D2AE64D77006208722520680EAC9944C997C5D3E95A38743C054CA1E49CA234D1CA5BAE46508A95E708CA6F71AAAEC21D464A0824063900B034ACF52B9C0D954E16A71A78C2265F7AFF2B29C5D04A50A9C40FA29CDB0808EA4A181460E11534949CA704523131C2F383D8512A5CF4808216F59EF65432DA340B601BD5452A686266C857E0463347D287ADC068390AF0BE0291F62D20B470C196571FFDA9BCC732F309FFDBBFF0741323D67]
link(onEndPlay,3397869:doCompare,[])
}
Add(ChildPanel,4661267,665,175)
{
}
BEGIN_SDK
Add(EditMulti,16495647,21,21)
{
WorkCount=2
VarCount=1
link(doWork1,12426421:doText,[(42,27)(42,41)])
link(doWork2,14281500:doText,[(42,34)(42,97)])
link(Var1,14281500:Caption,[(27,172)(97,172)])
}
Add(Panel,12867422,154,35)
{
Left=90
Top=15
Width=59
Height=28
BorderStyle=1
BevelInner=1
BevelOuter=2
}
Add(Label,14281500,91,91)
{
Left=5
Top=5
Width=23
Height=12
Name="Lab01"
Hint="минуты"
Caption="000"
AutoSize=1
Alignment=2
}
Add(Label,9031525,105,35)
{
Left=30
Top=5
Width=7
Height=12
Caption=":"
}
Add(Label,12426421,63,35)
{
Left=35
Top=5
Width=16
Height=12
Name="Lab02"
Hint="секунды"
Caption="00"
AutoSize=1
Alignment=2
}
END_SDK
Add(Hub,517818,420,203)
{
OutCount=6
link(onEvent1,9156090:doCompare,[(448,209)(448,132)])
link(onEvent2,12672298:doReset,[(455,216)(455,188)])
link(onEvent3,9479884:doReset,[(513,223)(513,195)])
link(onEvent4,1638401:doWork3,[(592,230)])
link(onEvent5,2343702:doWork2,[])
link(onEvent6,852986:doOff,[(442,244)(442,185)(205,185)(205,125)])
}
Add(Button,5738008,280,203)
{
Left=95
Top=50
Height=25
Font=[MS Sans Serif,12,1,0,1]
Enabled=1
Hint="остановить таймер"
Caption="Stop"
Point(doEnabled)
Point(doBringToFront)
link(onClick,492213:doEvent1,[])
}
Add(Hub,13233474,238,189)
{
OutCount=4
link(onEvent1,16538377:doAutoStop,[(324,195)(324,216)])
link(onEvent2,16538377:doTimer,[])
link(onEvent3,852986:doOn,[(264,209)(264,169)(209,169)(209,132)])
link(onEvent4,10512364:doOn,[(388,216)(388,69)])
}
Add(GetDataEx,11377847,140,161)
{
link(Data,14216317:Text,[])
}
Add(Convertor,10992691,609,231)
{
Digits=3
SymbolFill="0"
link(onResult,4661267:doWork2,[(653,237)(653,188)])
}
Add(Convertor,11773094,609,175)
{
SymbolFill="0"
link(onResult,4661267:doWork1,[])
}
Add(If_else,9156090,462,126)
{
link(onTrue,8370929:doWork2,[])
link(Op1,11377847:Var1,[(468,87)(130,87)(130,166)])
link(Op2,4661267:Var1,[(475,89)(742,89)(742,219)(671,219)])
}
Add(HubEx,1638401,588,175)
{
link(onEvent,11773094:doConvert,[])
}
Add(HubEx,2343702,569,231)
{
link(onEvent,10992691:doConvert,[])
}
Add(Button,2160451,91,182)
{
Left=20
Top=50
Height=25
Font=[MS Sans Serif,12,1,0,1]
Hint="стартовать таймер"
Caption="Start"
Point(doEnabled)
Point(doBringToFront)
link(onClick,10559353:doCompare,[])
}
Add(LED,852986,217,112)
{
Left=165
Top=15
Hint="Таймер"
link(onChange,3455663:doEvent1,[])
}
Add(Hub,3455663,266,112)
{
OutCount=3
link(onEvent1,4403182:doSwitch,[])
link(onEvent2,5738008:doEnabled,[(292,125)(292,167)(268,167)(268,209)])
link(onEvent3,3501677:doEnabled,[(376,132)(376,55)])
}
Add(Switch,4403182,301,112)
{
DataOn=Integer(0)
DataOff=Integer(1)
link(onSwitch,2160451:doEnabled,[(345,118)(345,153)(79,153)(79,188)])
}
Add(CounterEx,16497834,567,126)
{
link(onNext,7103322:doPlay,[])
}
Add(If_else,3397869,700,126)
{
Op2=Integer(20)
link(onFalse,8370929:doWork1,[(736,139)(736,105)(505,105)])
link(Op1,16497834:Count,[(706,111)(629,111)(629,170)(573,170)])
}
Add(Memo,10161287,644,35)
{
Left=260
Top=20
Width=265
Height=45
HintManager="заметки"
Strings=#11:Для заметок|
}
Add(If_else,11548649,525,126)
{
Type=5
Op2=Integer(0)
link(onTrue,16497834:doNext,[])
link(Op1,10512364:Value,[(531,104)(559,104)])
}
Add(Button,11028999,595,42)
{
Left=535
Top=20
Width=60
Height=25
Hint="Очистить заметки"
Caption="Очистить"
link(onClick,10161287:doClear,[])
}
Add(LED,10512364,553,49)
{
Left=210
Top=15
Hint="Сигнал"
}
Add(Button,3501677,501,49)
{
Left=190
Top=50
Height=25
Enabled=1
Hint="Включаетвыключает сигнал"
Caption="Сигнал"
Point(doEnabled)
Point(onMouseDown)
link(onClick,10512364:doChangeValue,[])
}
Add(Hub,492213,336,203)
{
link(onEvent1,16538377:doStop,[])
link(onEvent2,10512364:doOff,[(452,216)(452,62)])
}
Add(HubEx,8370929,501,126)
{
link(onEvent,213571:doWork2,[])
}
Add(HubEx,213571,511,126)
{
link(onEvent,11548649:doCompare,[])
}
END_SDK

----
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#2: 2013-11-14 09:20:07 ЛС | профиль | цитата
timer_000.rar
или
timer_002.rar
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 2timer_000.rar [7.8KB] [162], timer_002.rar [7.7KB] [102]
Ответов: 13
Рейтинг: 0
#3: 2013-11-14 16:42:08 ЛС | профиль | цитата
Tad спасибо большое очень интересно у тебя получилось я разбираю твой профессиональный пример
который timer_002.rar
А первая схема из архива timer_000.rar почемуто вылетает с ошибкой, я вытаскиваю файл из архива пытаюсь открыть в HiAsm но он ругается это кстати почему?
Но второй нормально открылся.
------------ Дoбавленo в 16.42:
Nic не совсем понял чего от меня требуется? Необходимо разместить простынь кода схемы со звуком в первом сообщении вместо ссылки на архив?
Как надо выкладывать схемы на форуме прочитал внимательно, спасибо.
карма: 1

0
Ответов: 13
Рейтинг: 0
#4: 2013-11-15 17:52:51 ЛС | профиль | цитата
Продолжаю работать над таймером потом покажу что получилось когда до ума доведу.
Теперь встал вопрос в прерывании зацикленного сигнала.
Как мне его остановить кнопкой?
code_32333.txt

Что-то даже светодиод включается уже после того как отыграет сигнал...
карма: 1

0
файлы: 1code_32333.txt [11.1KB] [186]
Ответов: 16884
Рейтинг: 1239
#5: 2013-11-15 18:21:10 ЛС | профиль | цитата
Довесок к компьютерным часам - кукушка.
http://forum.d2h.ru/forum_serv.php?q=56&id=3639
Схему не выкладываю - просто схемы нет.
Один компонент IC и... рабочих 12 строчек кода.
Просто запускаем exe. Кукует каждые четверть часа.
Прогнать кукушку - двойной клик на иконке в трее.
Очень полезная штука для фанатов программирования.


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 13
Рейтинг: 0
#6: 2013-11-15 19:10:34 ЛС | профиль | цитата
обновил схемку в первом сообщении там заморочка с прерыванием сигнала
------------ Дoбавленo в 19.10:
Tad писал(а):
Прогнать кукушку - двойной клик на иконке в трее.
Очень полезная штука для фанатов программирования.



В процессе её видно в трее нет никакой иконки.
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#7: 2013-11-15 19:39:08 ЛС | профиль | цитата
там есть такая хитрая кнопочка - отображать скрытые значки.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 13
Рейтинг: 0
#8: 2013-11-15 20:37:59 ЛС | профиль | цитата
Tad писал(а):
там есть такая хитрая кнопочка - отображать скрытые значки.

Смотри на скрин, видишь надпись "скрыть" над треем??? как думаешь почему эта надпись появилась там?
Именно потому что я нажал "отображать скрытые значки". И теперь наоборот их предлагается скрыть...
Я не шучу твоя прога глючит нет никакой иконки в трее.
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#9: 2013-11-15 20:47:37 ЛС | профиль | цитата
cuckoo.gif
А это (в красном квадратике) у тебя что ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1cuckoo.gif [17.6KB] [432]
Ответов: 13
Рейтинг: 0
#10: 2013-11-15 22:56:00 ЛС | профиль | цитата
Tad писал(а):
А это (в красном квадратике) у тебя что ?

Ой А что это? похоже на HiAsm

Tad, ну так по моему вопросу выше никаких идей нет? Как остановить PlaySound в цикле?
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#11: 2013-11-15 23:09:37 ЛС | профиль | цитата
Dimon777 писал(а):
Как остановить PlaySound в цикле?
остановить цикл.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 13
Рейтинг: 0
#12: 2013-11-15 23:16:36 ЛС | профиль | цитата
Tad писал(а):
остановить цикл.

Невозможно нажать не кнопку не радиобутон когда playSound зациклен соответсвенно цикл тоже невозможно остановить.
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#13: 2013-11-15 23:32:59 ЛС | профиль | цитата
схема где ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Гость
Ответов: 17029
Рейтинг: 0
#14: 2013-11-15 23:34:05 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2025-01-10 18:24:52
карма: 0

0
Ответов: 13
Рейтинг: 0
#15: 2013-11-16 14:36:00 ЛС | профиль | цитата
г. ость писал(а):
вариант

Спасибо кстати, использовал твой вариант... хотя были некоторые нюансы мне пришлось думать как это реализовать
но я сам виноват сразу не сказал условие что переменная кол-ва сигналов будет меняться и может быть установлена какой угодно.
Тем не менее вроде у меня всё это работает, посмотри схему там весь цикл со звуком вложил в контейнер.


Tad писал(а):
схема где ?

Да выше были варианты, теперь самый последний вариант полной схемы вот:
code_32345.txt

Дальше в планах, сделаю выпадающее меню + масив звуков... сделаю чтобы таймер сворачивался в трей...
ну и будет несколько таймеров в одной форме, возможно еще сделаю чтобы настройки выбранного звука и
количество повторов сигнала сохранялась при выходе и загружались при открытии может быть из ini файла.

карма: 1

0
файлы: 1code_32345.txt [17.8KB] [213]
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)