Вверх ↑
Этот топик читают: Гость
Ответов: 537
Рейтинг: 14
#1: 2017-05-28 12:03:47 ЛС | профиль | цитата
Сегодня было нужно, сделал на скорую руку, может кому нужен.

Add(MainForm,5273505,35,28)
{
Width=257
Height=262
}
Add(ChildGroupBox,3872874,280,70)
{
}
BEGIN_SDK
Add(EditMulti,6799624,21,21)
{
Width=594
Height=487
}
Add(GroupBox,8732101,35,105)
{
Left=35
Top=105
Width=145
Height=73
Caption="Таймер"
}
Add(Button,7370293,35,154)
{
Left=10
Top=25
Height=30
Font=[Tahoma,9,0,0,1]
Caption="Старт"
link(onClick,16633744:doEvent1,[])
}
Add(Timer,4120708,126,154)
{
Enable=1
link(onTimer,471011:doEvent1,[])
}
Add(CounterEx,9735693,217,154)
{
Max=59
Direct=1
Point(onThroughMin)
Point(doReset)
link(onNext,12568205:doData,[])
link(onThroughMin,1283514:doEvent1,[])
}
Add(Edit,16734325,329,168)
{
Left=70
Top=30
Width=20
Text="2"
}
Add(Edit,12877261,413,168)
{
Left=95
Top=30
Width=20
Text="30"
}
Add(Hub,1283514,259,161)
{
OutCount=3
link(onEvent1,9735693:doReset,[(283,167)(283,148)(205,148)(205,167)])
link(onEvent2,14551584:doOperation,[(309,174)(309,265)])
link(onEvent3,15650450:doCompare,[(301,181)(301,328)])
}
Add(Math,14551584,413,259)
{
OpType=1
Op2=1
link(onResult,11489602:doEvent1,[])
link(Op1,1666651:Var2,[])
}
Add(If_else,15650450,420,322)
{
Op2=Integer(0)
link(onTrue,9920038:doText,[])
link(Op1,1666651:Var3,[(426,250)])
}
Add(GetDataEx,1666651,413,245)
{
link(Data,11051875:Var2,[])
}
Add(Hub,11489602,462,259)
{
InCount=2
OutCount=1
link(onEvent1,12877261:doText,[(488,265)(488,215)(400,215)(400,174)])
}
Add(VisualStrings,9920038,462,322)
{
Lines=#2:59|
Width=25
Point(doText)
Point(onText)
link(onText,13649552:doEvent1,[])
}
Add(Hub,13649552,504,322)
{
link(onEvent1,11489602:doEvent2,[(530,328)(530,300)(454,300)(454,272)])
link(onEvent2,10086501:doOperation,[(536,335)(536,307)(317,307)(317,279)])
}
Add(Math,10086501,329,273)
{
OpType=1
Op2=1
link(onResult,16734325:doText,[(373,279)(373,227)(317,227)(317,174)])
link(Op1,15513789:Var2,[])
}
Add(Label,12319353,217,98)
{
Left=90
Top=30
Width=13
Height=17
Font=[MS Sans Serif,8,1,0,1]
Caption=":"
}
Add(FormatStr,4880102,315,378)
{
DataCount=3
Mask="%1:%2:%3"
link(onFString,16634553:doText,[])
link(Str1,15513789:Var1,[(321,243)])
link(Str2,11051875:Var1,[(328,229)])
link(Str3,12568205:GetData,[(335,282)(517,282)])
}
Add(GetDataEx,15513789,329,238)
{
link(Data,16734325:Text,[])
}
Add(GetDataEx,11051875,413,224)
{
link(Data,12877261:Text,[])
}
Add(Hub,471011,168,154)
{
link(onEvent1,9735693:doNext,[])
link(onEvent2,4880102:doString,[(195,167)(195,384)])
}
Add(Label,16634553,371,378)
{
Left=70
Top=30
Width=48
Height=24
Font=[MS Sans Serif,12,1,0,1]
Visible=1
Caption="Старт"
Point(doVisible)
}
Add(EventFromData,12568205,511,154)
{
}
Add(Hub,16633744,84,154)
{
link(onEvent1,4120708:doTimer,[])
link(onEvent2,16634553:doVisible,[(116,167)(116,391)])
}
END_SDK
карма: 4

1
Голосовали:dimosikILA
Ответов: 212
Рейтинг: 2
#2: 2017-08-25 09:21:39 ЛС | профиль | цитата
Пригодилось! Спс!
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 16884
Рейтинг: 1239
#3: 2017-08-25 15:58:47 ЛС | профиль | цитата
Sersey писал(а):
Сегодня было нужно, сделал на скорую руку
Заметно.
Поставь 2 минуты.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 497
Рейтинг: 16
#4: 2017-08-25 16:10:43 ЛС | профиль | цитата
неплохо

Add(Timer,16201833,427,252)
{
Enable=1
link(onTimer,5132125:doNext,[])
}
Add(CounterEx,5132125,504,252)
{
Max=0
Direct=1
Point(doMax)
link(onNext,9321960:doCount,[])
}
Add(Button,5537939,315,217)
{
Left=5
Top=5
link(onClick,10487638:doEvent1,[])
}
Add(Edit,7675031,427,168)
{
Left=65
Top=5
}
Add(Edit,4945915,434,126)
{
Left=120
Top=5
}
Add(FastMathParse,13959632,427,217)
{
MathStr="%1*3600+%2*60"
link(onResult,5132125:doMax,[(478,223)(478,265)])
link(X1,7675031:Text,[])
link(X2,4945915:Text,[])
}
Add(Hub,10487638,371,217)
{
link(onEvent1,13959632:doCalc,[])
link(onEvent2,16201833:doTimer,[(406,230)(406,258)])
}
Add(Label,12993671,609,252)
{
Left=175
Top=10
}
Add(InlineCode,9321960,557,252)
{
@Hint=#66:Перевод целочисленного значения в количество часов, минут и секунд|
WorkPoints=#7:doCount|
EventPoints=#8:onString|
VarPoints=#3:Str|
DataPoints=#5:Count|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses Kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|17: FStr : string;|9: public|20: Count:THi_Event;|0:|23: onString:THI_Event;|0:|51: procedure doCount(var _Data:TData; Index:word);|47: procedure Str(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|77:function SecTime(var x:integer):string; // Перевод целочисленного значения в|76:var hour,min,sec:string; // количество часов, минут и секунд|5:begin|31: hour := int2str(x div 3600);|19: x := x mod 3600;|26: if (x div 60) < 10 then|40: min := '0' + int2str(x div 60) else|30: min := int2str(x div 60);|26: if (x mod 60) < 10 then|40: Sec := '0' + int2str(x mod 60) else|52: Sec := int2str(x mod 60);|42: Result := hour + ':' + min + ':' + sec;|4:end;|0:|30:procedure THiAsmClass.doCount;|14:var C:integer;|15:var str:string;|5:begin|39: C := ReadInteger(_Data, Count, 0);|23: str := SecTime(C);|17: FStr := str;|31: _hi_onEvent(onString,str);|4:end;|0:|26:procedure THiAsmClass.Str;|5:begin|31: _Data.Data_type := data_str;|23: _Data.sdata := FStr;|4:end;|0:|4:end.|
link(onString,12993671:doText,[])
}


Редактировалось 1 раз(а), последний 2017-08-27 15:13:10
карма: 1
        ]  
0
Ответов: 16884
Рейтинг: 1239
#5: 2017-08-25 18:32:49 ЛС | профиль | цитата
На скорую руку

Add(MainForm,208754,84,91)
{
Width=220
Height=108
link(onCreate,11163660:doData,[])
}
Add(DatePicker,13360480,203,105)
{
Left=15
Top=15
Width=110
Height=21
Font=[Courier New,12,1,0,204]
DateMode=1
Time=0
Point(DateTime)
}
Add(Button,7675852,84,147)
{
Left=135
Top=15
link(onClick,15559422:doTimer,[])
}
Add(DoData,11163660,140,105)
{
Data=Integer(736000)
link(onEventData,12119478:doWork2,[])
}
Add(MathParse,15510330,203,147)
{
MathStr="%1- 1/86400"
link(onResult,9419659:doEvent1,[])
link(X1,13360480:DateTime,[])
}
Add(Timer,15559422,140,147)
{
Enable=1
link(onTimer,15510330:doCalc,[])
}
Add(HubEx,12119478,182,105)
{
link(onEvent,13360480:doSetDate,[])
}
Add(Math,8354719,280,154)
{
OpType=36
Op2=1
link(onResult,10357083:doCompare,[])
}
Add(Hub,9419659,252,147)
{
link(onEvent1,12119478:doWork1,[(277,153)(277,102)(186,102)])
link(onEvent2,8354719:doOperation,[])
}
Add(If_else,10357083,322,154)
{
Op2=Integer(0)
link(onTrue,13511970:doEvent1,[])
}
Add(Beep,8905066,420,161)
{
Duration=1000
}
Add(Hub,13511970,378,154)
{
link(onEvent1,15559422:doStop,[(461,160)(461,198)(128,198)(128,160)])
link(onEvent2,8905066:doBeep,[])
}


Редактировалось 1 раз(а), последний 2017-08-25 18:40:58
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 212
Рейтинг: 2
#6: 2017-08-26 17:27:34 ЛС | профиль | цитата
Tad, просто готовый блок! Эх, спасибо!
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 212
Рейтинг: 2
#7: 2017-08-26 19:30:03 ЛС | профиль | цитата
Tad, а как тут вывести текущее значение времени в какой-нибудь label или edit? И куда пристроить паузу?
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 16884
Рейтинг: 1239
#8: 2017-08-26 20:06:04 ЛС | профиль | цитата
inter1 писал(а):
И куда пристроить паузу?
Пауза в таймере? Это что-то новое.
Тебе правда надо или это просто бред от нехрен делать ?

Add(MainForm,208754,140,112)
{
Width=302
Height=120
link(onCreate,11163660:doData,[])
}
Add(DatePicker,13360480,259,126)
{
Left=45
Top=40
Width=110
Height=21
Font=[Courier New,12,1,0,204]
DateMode=1
Time=0
Point(DateTime)
Point(CurrentDateTime)
}
Add(Button,7675852,140,224)
{
Left=165
Top=40
link(onClick,15559422:doTimer,[])
}
Add(DoData,11163660,196,126)
{
Data=Integer(736000)
link(onEventData,12119478:doWork2,[])
}
Add(MathParse,15510330,259,224)
{
MathStr="%1- 1/86400"
link(onResult,9419659:doEvent1,[])
link(X1,13360480:DateTime,[])
}
Add(Timer,15559422,196,224)
{
Enable=1
link(onTimer,15510330:doCalc,[])
}
Add(HubEx,12119478,238,126)
{
link(onEvent,13360480:doSetDate,[])
}
Add(Math,8354719,336,231)
{
OpType=36
Op2=1
link(onResult,10357083:doCompare,[])
}
Add(Hub,9419659,308,224)
{
link(onEvent1,12119478:doWork1,[(333,230)(333,123)(242,123)])
link(onEvent2,8354719:doOperation,[])
}
Add(If_else,10357083,378,231)
{
Op2=Integer(0)
link(onTrue,13511970:doEvent1,[])
}
Add(Beep,8905066,476,238)
{
Duration=1000
}
Add(Hub,13511970,434,231)
{
link(onEvent1,15559422:doStop,[(517,237)(517,275)(184,275)(184,237)])
link(onEvent2,8905066:doBeep,[])
}
Add(Label,3040698,378,175)
{
Left=15
Top=5
Width=260
Font=[MS Sans Serif,8,1,255,1]
Caption=""
AutoSize=1
Alignment=2
}
Add(DateConvertor,10963874,336,175)
{
Mode=9
Format="Текущее время : dd-MM-yyyy HH:mm:ss"
link(onResult,3040698:doText,[])
}
Add(Timer,443053,196,175)
{
link(onTimer,9730680:doData,[])
}
Add(DoData,9730680,266,175)
{
link(onEventData,10963874:doConvert,[])
link(Data,13360480:CurrentDateTime,[])
}

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 212
Рейтинг: 2
#9: 2017-08-26 20:23:42 ЛС | профиль | цитата
Tad,
Tad писал(а):

Тебе правда надо или это просто бред от нехрен делать ?

Нет, это не фантазия, типа, а что, если, а действительная необходимость. Например, запущен таймер, выполняется действие. В случае, если оно временно прервалось, нужно прервать и работу таймера.
А по поводу "вывести текущее значение времени" ты не понял: не времени вообще, а того, что в обратном отсчете. Сейчас обратный отсчет "тикает" в DatePicker, а как это постоянно изменяющееся значение вывести в label?
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 16884
Рейтинг: 1239
#10: 2017-08-26 21:09:45 ЛС | профиль | цитата
inter1 писал(а):
вывести текущее значение времени
Текущее значение времени - это Здесь и Сейчас
inter1 писал(а):
Сейчас обратный отсчет "тикает" в DatePicker, а как это постоянно изменяющееся значение вывести в label?
А зачем ? Чем тебе не нравится окно DatePicker?

Редактировалось 1 раз(а), последний 2017-08-26 21:11:45
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 497
Рейтинг: 16
#11: 2017-08-26 21:11:44 ЛС | профиль | цитата
all


Add(MainForm,13201634,392,287)
{
Width=565
Height=293
link(onCreate,3160223:doData,[])
}
Add(DatePicker,5407675,511,301)
{
Left=45
Top=40
Width=110
Height=21
Font=[Courier New,12,1,0,204]
DateMode=1
Time=0
Point(DateTime)
Point(CurrentDateTime)
}
Add(Button,686014,315,399)
{
Left=165
Top=40
Caption="start"
link(onClick,3351686:doTimer,[])
}
Add(DoData,3160223,448,301)
{
Data=Integer(736000)
link(onEventData,822500:doWork2,[])
}
Add(MathParse,11549991,511,399)
{
MathStr="%1- 1/86400"
link(onResult,14592317:doEvent1,[])
link(X1,9780590:Var2,[])
}
Add(Timer,3351686,448,399)
{
Enable=1
link(onTimer,11549991:doCalc,[])
}
Add(HubEx,822500,490,301)
{
link(onEvent,5407675:doSetDate,[])
}
Add(Math,3283021,588,406)
{
OpType=36
Op2=1
link(onResult,6505826:doCompare,[])
}
Add(Hub,14592317,560,399)
{
OutCount=3
link(onEvent1,822500:doWork1,[(585,405)(586,369)(585,298)(494,298)])
link(onEvent2,3283021:doOperation,[])
link(onEvent3,9730680:doData,[(586,419)(586,387)(506,387)(506,356)])
}
Add(If_else,6505826,630,406)
{
Op2=Integer(0)
link(onTrue,13134762:doEvent1,[])
}
Add(Beep,3082080,728,413)
{
Duration=1000
}
Add(Hub,13134762,686,406)
{
link(onEvent1,4871259:doWork3,[(769,412)(769,450)(436,450)])
link(onEvent2,3082080:doBeep,[])
}
Add(Label,3040698,651,350)
{
Left=15
Top=5
Width=260
Font=[MS Sans Serif,8,1,255,1]
Caption=""
AutoSize=1
Alignment=2
}
Add(DateConvertor,10963874,588,350)
{
Mode=9
Format="HH:mm:ss"
link(onResult,3040698:doText,[])
}
Add(DoData,9730680,518,350)
{
link(onEventData,10963874:doConvert,[])
link(Data,9780590:Var3,[(524,341)])
}
Add(Button,1291455,364,406)
{
Left=230
Top=40
Caption="stop"
link(onClick,4871259:doWork2,[])
}
Add(HubEx,4871259,432,406)
{
link(onEvent,3351686:doStop,[])
}
Add(GetDataEx,9780590,511,336)
{
link(Data,5407675:DateTime,[])
}


Tad писал(а):
А зачем ?

ну красиво оформить и тд.
карма: 1
        ]  
0
Ответов: 16884
Рейтинг: 1239
#12: 2017-08-26 21:24:21 ЛС | профиль | цитата
Sersey показал схему на 25-и компонентах, я на 12-ти. А мог бы и на 4-х. Но nesco IC не уважает. Вот и всё.
А тд делайте сами.

Редактировалось 3 раз(а), последний 2017-08-26 21:31:47
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 212
Рейтинг: 2
#13: 2017-08-26 21:54:17 ЛС | профиль | цитата
RAWY_EX, Оооо! Спасибо! Ты, как всегда (часто), рядом в трудную минуту!
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 537
Рейтинг: 14
#14: 2017-08-27 09:02:20 ЛС | профиль | цитата
Самая маленькая схема, активируется клавишей enter

Add(MainForm,2953706,21,105)
{
Width=172
Height=117
}
Add(ChildGroupBox,3872874,147,105)
{
@Hint=#6:Таймер|
AddHint(-16,34,54,13,@Hint)
}
BEGIN_SDK
Add(EditMulti,6799624,21,21)
{
Width=335
Height=172
}
Add(GroupBox,8732101,28,42)
{
Left=40
Top=10
Width=78
Height=57
Caption=""
}
Add(Edit,16734325,140,42)
{
Left=15
Top=20
Font=[MS Sans Serif,8,1,0,1]
Text="2:30"
Alignment=2
MaxLenField=5
ClearAfterEnter=1
link(onChange,15388170:doEvent1,[])
link(onEnter,8131885:doEvent1,[])
}
Add(Label,16634553,280,112)
{
Left=10
Top=20
Width=53
Height=24
Font=[MS Sans Serif,12,1,0,1]
Visible=1
Caption="Старт"
Point(doVisible)
}
Add(InlineCode,5395143,235,112)
{
@Hint=#66:Перевод целочисленного значения в количество часов, минут и секунд|
WorkPoints=#7:doCount|
EventPoints=#8:onString|
VarPoints=#3:Str|
DataPoints=#5:Count|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses Kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|17: FStr : string;|9: public|20: Count:THi_Event;|0:|23: onString:THI_Event;|0:|51: procedure doCount(var _Data:TData; Index:word);|47: procedure Str(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|77:function SecTime(var x:integer):string; // Перевод целочисленного значения в|76:var hour,min,sec:string; // количество часов, минут и секунд|5:begin|31: hour := int2str(x div 3600);|19: x := x mod 3600;|26: if (x div 60) < 10 then|40: min := '0' + int2str(x div 60) else|30: min := int2str(x div 60);|26: if (x mod 60) < 10 then|40: Sec := '0' + int2str(x mod 60) else|52: Sec := int2str(x mod 60);|42: Result := hour + ':' + min + ':' + sec;|4:end;|0:|30:procedure THiAsmClass.doCount;|14:var C:integer;|15:var str:string;|5:begin|39: C := ReadInteger(_Data, Count, 0);|23: str := SecTime(C);|17: FStr := str;|31: _hi_onEvent(onString,str);|4:end;|0:|26:procedure THiAsmClass.Str;|5:begin|31: _Data.Data_type := data_str;|23: _Data.sdata := FStr;|4:end;|0:|4:end.|
link(onString,16634553:doText,[])
}
Add(Timer,2532539,91,119)
{
Enable=1
link(onTimer,13945467:doPrev,[])
}
Add(Counter,13945467,189,112)
{
Max=500
Default=9000
Point(doValue)
link(onNext,5395143:doCount,[])
}
Add(MultiStrPart,11981660,140,84)
{
Char=":"
link(Str,16734325:Text,[])
}
Add(MathParse,8137829,140,133)
{
MathStr="%1*60*60+%2*60"
link(onResult,13945467:doValue,[])
link(X1,11981660:Part1,[])
link(X2,11981660:Part2,[])
}
Add(Hub,15388170,182,42)
{
link(onEvent1,11981660:doSplit,[(208,48)(208,69)(128,69)(128,90)])
link(onEvent2,8137829:doCalc,[(208,55)(208,97)(128,97)(128,139)])
}
Add(Hub,8131885,224,49)
{
link(onEvent1,16634553:doVisible,[(259,55)(259,125)])
link(onEvent2,2532539:doTimer,[(250,62)(250,94)(79,94)(79,125)])
}
END_SDK
карма: 4

0
Ответов: 16884
Рейтинг: 1239
#15: 2017-08-27 09:52:13 ЛС | профиль | цитата
Sersey писал(а):
Самая маленькая схема

А нарисовать "самую маленькую" без шифрования ну никак ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)