Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2016-05-03 17:07:17 ЛС | профиль | цитата
В общем-то, ДА ..... Кривоватая процедурка.

Может так лучше будет:
Add(MainForm,14990556,280,196)
{
Width=358
Height=195
Position=1
link(onCreate,13915102:doWork3,[(340,216)])
}
Add(Edit,2078963,589,98)
{
Left=22
Top=82
Width=297
}
Add(Button,5253343,280,98)
{
Left=265
Top=20
Height=48
Caption="INC\r\nDEC"
link(onClick,13915102:doWork2,[])
}
Add(Edit,6103169,589,196)
{
Left=22
Top=119
Width=297
}
Add(DateConvertor,2648846,364,98)
{
Mode=8
Format="dd.MM.yyyy -- HH:mm"
Point(Data)
link(onResult,7371580:doEvent1,[])
link(Data,15007419:Text,[])
}
Add(DateConvertor,16753391,532,98)
{
Mode=9
Format="Время - dd.MM.yyyy -- HH:mm"
link(onResult,2078963:doText,[])
}
Add(Hub,7371580,420,98)
{
link(onEvent1,16409841:doIncMonth,[])
link(onEvent2,6702480:doIncYear,[(452,111)(452,209)])
}
Add(DateConvertor,4292288,532,196)
{
Mode=9
Format="Время - dd.MM.yyyy -- HH:mm"
link(onResult,6103169:doText,[])
}
Add(InlineCode,16409841,469,98)
{
WorkPoints=#10:doIncMonth|9:doIncYear|
EventPoints=#8:onResult|
DataPoints=#8:DataTime|6:incNum|
Code=#15:unit HiAsmUnit;|0:|9:interface|29:uses windows,kol,Share,Debug;|0:|4:type|29: THiAsmClass = class(TDebug)|10: public|41: onResult,DataTime,incNum:THI_Event;|51: procedure doIncMonth(var dt:TData; idx:word);|50: procedure doIncYear(var dt:TData; idx:word);|6: end;|0:|14:implementation|0:|33:procedure THiAsmClass.doIncMonth;|65:var DD:TDateTime; ST:TSystemTime; DayTable:PDayTable; M:integer;|5:begin|31: DD := ReadReal(dt, DataTime);|30: DateTime2SystemTime(DD, ST);|61: M := ST.wYear*12 + ST.wMonth + ReadInteger(dt, incNum) - 1;|24: ST.wYear := M div 12;|28: ST.wMonth := M mod 12 + 1;|47: DayTable := @MonthDays[IsLeapYear(ST.wYear)];|71: if ST.wDay > DayTable[ST.wMonth] then ST.wDay := DayTable[ST.wMonth];|30: SystemTime2DateTime(ST, DD);|37: _hi_CreateEvent(dt, @onResult, DD);|4:end;|0:|32:procedure THiAsmClass.doIncYear;|54:var DD:TDateTime; ST:TSystemTime; DayTable:PDayTable;|5:begin|31: DD := ReadReal(dt, DataTime);|30: DateTime2SystemTime(DD, ST);|41: Inc(ST.wYear, ReadInteger(dt, incNum));|47: DayTable := @MonthDays[IsLeapYear(ST.wYear)];|71: if ST.wDay > DayTable[ST.wMonth] then ST.wDay := DayTable[ST.wMonth];|30: SystemTime2DateTime(ST, DD);|37: _hi_CreateEvent(dt, @onResult, DD);|4:end;|0:|4:end.|
@IsLib=True
link(onResult,16753391:doConvert,[])
link(incNum,12743994:Text,[])
}
Add(Edit,15007419,364,49)
{
Left=22
Top=19
Width=223
Text="29.02.2016 -- 2:00"
}
Add(Edit,12743994,476,49)
{
Left=21
Top=49
Width=105
Hint="increment MONTH"
Text="-12"
Alignment=1
DataType=2
}
Add(InlineCode,6702480,469,196)
{
elink(16409841)
link(onResult,4292288:doConvert,[])
link(incNum,1903986:Text,[])
}
Add(Edit,1903986,476,147)
{
Left=147
Top=49
Width=98
Hint="increment YEAR"
Text="-2"
Alignment=1
DataType=2
}
Add(HubEx,13915102,336,98)
{
link(onEvent,2648846:doConvert,[])
}
Add(StyleXP,4300558,280,147)
{
}
карма: 9

1
Голосовали:kaban4ik