Вверх ↑
Этот топик читают: Гость
Ответов: 1841
Рейтинг: 369
#1: 2009-09-08 17:24:36 ЛС | профиль | цитата
Собственно понадобился собственный таймер но вот застопорился на выводе цифр, тоесть чёт ни как не могу вместо 0:0:0 сделать 00:00:00, подскажите а то в голову ни какие идеи не приходят...
Покажите на примере...
code_14859.txt
карма: 1
0
файлы: 1code_14859.txt [1KB] [171]
Разработчик
Ответов: 26170
Рейтинг: 2127
#2: 2009-09-08 17:34:45 ЛС | профиль | цитата
CriDos, вот так можно, может кто и короче сделает



Add(Timer,16590596,287,189)
{
link(onTimer,12083555:doEvent1,[])
}
Add(MainForm,10633582,287,140)
{
Width=308
Height=202
Caption="Ski"
BorderStyle=1
Point(onKeyDown)
Point(onKeyUp)
}
Add(FormatStr,11118043,385,315)
{
DataCount=3
Mask="%1:%2:%3"
link(onFString,15392847:doText,[])
link(Str1,11979362:GetData,[])
link(Str2,7383173:GetData,[(398,289)(503,289)])
link(Str3,7356887:GetData,[(405,296)(615,296)])
}
Add(Label,15392847,434,315)
{
Left=95
Top=70
Width=90
Height=25
}
Add(Hub,12083555,336,189)
{
link(onEvent1,457234:doNext,[])
link(onEvent2,11118043:doString,[(368,202)(368,321)])
}
Add(Counter,457234,434,189)
{
Max=60
link(onNext,11541024:doCase,[])
}
Add(Counter,3965416,546,189)
{
Max=60
link(onNext,13006160:doCase,[])
}
Add(Counter,1427130,658,189)
{
Max=99
}
Add(Case,11541024,497,189)
{
Value=String(60)
link(onTrue,3965416:doNext,[(537,202)(537,195)])
}
Add(Case,13006160,609,189)
{
Value=String(60)
link(onTrue,1427130:doNext,[(649,202)(649,195)])
}
Add(Convertor,15271966,434,245)
{
SymbolFill="0"
link(onResult,11979362:doData,[(478,251)(478,239)(373,239)(373,251)])
link(Data,457234:Count,[])
}
Add(EventFromData,11979362,385,245)
{
link(onEvent,15271966:doConvert,[])
}
Add(Convertor,6137949,546,245)
{
SymbolFill="0"
link(onResult,7383173:doData,[(590,251)(590,239)(485,239)(485,251)])
link(Data,3965416:Count,[])
}
Add(EventFromData,7383173,497,245)
{
link(onEvent,6137949:doConvert,[])
}
Add(Convertor,13503650,658,245)
{
SymbolFill="0"
link(onResult,7356887:doData,[(702,251)(702,239)(597,239)(597,251)])
link(Data,1427130:Count,[])
}
Add(EventFromData,7356887,609,245)
{
link(onEvent,13503650:doConvert,[])
}

карма: 22

1
Голосовали:CriDos
Разработчик
Ответов: 4698
Рейтинг: 426
#3: 2009-09-08 17:38:13 ЛС | профиль | цитата
САМЫЙ сложный вариант
code_14861.txt

------------ Дoбавленo в 17.38:
nesco, это как всегда ты, да у тебя и короче раз в сто
карма: 10
0
файлы: 1code_14861.txt [4KB] [182]
Ответов: 1841
Рейтинг: 369
#4: 2009-09-08 17:39:05 ЛС | профиль | цитата
nesco, то что надо! Спасибо!
карма: 1
0
Разработчик
Ответов: 4698
Рейтинг: 426
#5: 2009-09-08 17:54:10 ЛС | профиль | цитата
nesco писал(а):
может кто и короче сделает

Если нестандартно(IC), то можно: code_14863.txt
P.S: это пример решения задачи в коде(IC)
карма: 10
1
файлы: 1code_14863.txt [2.2KB] [182]
Голосовали:CriDos
Ответов: 1841
Рейтинг: 369
#6: 2009-09-08 19:00:57 ЛС | профиль | цитата
Assasin, ммм...тебе тоже спасибо!!!
карма: 1
0
Разработчик
Ответов: 4698
Рейтинг: 426
#7: 2009-09-08 19:20:32 ЛС | профиль | цитата
Если что, могу влить код в компонент специально для вас. Все равно делать нечего, уроки сделаны, спать неохота
карма: 10
0
Ответов: 970
Рейтинг: 270
#8: 2009-09-08 19:34:33 ЛС | профиль | цитата
можешь сделать, чтобы на входе было например 4586 а на выходе 004586. С возможностью менять кол-во нулей.

например:

1------0001
2------0002
96-----0096
124----0124
3348--3348

code_14864.txt
карма: 0

0
файлы: 1code_14864.txt [607B] [153]
Разработчик
Ответов: 4698
Рейтинг: 426
#9: 2009-09-08 19:45:51 ЛС | профиль | цитата
Засунь палец в рот, так всю руку откусят
code_14865.txt
карма: 10
1
файлы: 1code_14865.txt [1.3KB] [170]
Голосовали:Genius
Ответов: 2125
Рейтинг: 159
#10: 2009-09-08 20:21:10 ЛС | профиль | цитата
Зачем IC, когда можно и без него обойтись:

Add(Button,12782508,84,105)
{
Left=70
Top=40
link(onClick,8050897:doOperation,[])
}
Add(Edit,7912256,147,56)
{
Left=135
Top=40
Width=55
Text="123"
}
Add(Edit,5821754,259,105)
{
Left=210
Top=40
Width=90
Text=""
}
Add(Copy,11928448,203,105)
{
Position=2
Count=8
link(onCopy,5821754:doText,[])
}
Add(Math,8050897,147,105)
{
Op2=100000000
link(onResult,11928448:doCopy,[])
link(Op1,7912256:Text,[])
}
карма: 1

1
Голосовали:Karl
Ответов: 16884
Рейтинг: 1239
#11: 2009-09-08 21:08:38 ЛС | профиль | цитата
Genius писал(а):
можешь сделать, чтобы на входе было например 4586 а на выходе 004586.
Ну nesco же тебе показал как это делается.
code_14867.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_14867.txt [445B] [167]
Ответов: 4641
Рейтинг: 334
#12: 2009-09-08 21:11:06 ЛС | профиль | цитата
CriDos писал(а):
могу вместо 0:0:0 сделать 00:00:00

nesco писал(а):
кто и короче сделает

А так не то что ли???
code_14868.txt

карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
файлы: 1code_14868.txt [429B] [172]
Ответов: 1305
Рейтинг: 29
#13: 2009-09-08 21:45:23 ЛС | профиль | цитата
Мм... когда-то выкладывал в Upload'е такую штуку - не то ли?
------------ Дoбавленo в 21.52:
А если без отдельного компонента да на IC, то можно вот так:

Add(Timer,9567517,105,105)
{
link(onTimer,843655:doNext,[])
}
Add(InlineCode,5395143,221,105)
{
@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);|46: 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,13306646:doText,[])
}
Add(Label,13306646,287,105)
{
Left=285
Top=105
}
Add(Counter,843655,161,105)
{
link(onNext,5395143:doCount,[])
}
карма: 0

0
файлы: 1secondscounter1.1.zip [2.2KB] [343]
13
Сообщение
...
Прикрепленные файлы
(файлы не залиты)