Make(delphi) ver(4.03 build 180) Add(MainForm,2953706,161,98) { Width=206 Height=172 Caption="Возраст" BorderStyle=1 Position=1 link(onCreate,1782885:doWork1,[]) } Add(InlineCode,10373486,224,161) { WorkPoints=#6:doWork| EventPoints=#3:age| DataPoints=#4:Year|5:Month|3:Day| Code=#0:|15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|66:// function CalculateAge(Birthday, CurrentDate: TData): Integer;|9: public|16:{ Event Points }|16:age : THI_Event;|15:{ Data Points }|17:Year : THI_Event;|18:Month : THI_Event;|16:Day : THI_Event;|15:{ Work Points }|47:Procedure doWork (var _Data:TData; Index:word);|0:|5: end;|0:|14:implementation|15:{ Work Points }|55:function CalculateAge(Year,Month,Day:Integer): Integer;|3:var|45: CurrentYear, CurrentMonth, CurrentDay: Word;|5:begin|58:DecodeDate(Date(), CurrentYear, CurrentMonth, CurrentDay);|78:if (Year = CurrentYear) and (Month = CurrentMonth) and (Day = CurrentDay) then|5:begin|15: Result := 0;|3:end|4:else|5:begin|31: Result := CurrentYear - Year;|33: if (Month > CurrentMonth) then|16: Dec(Result)|7: else|8: begin|33: if Month = CurrentMonth then|33: if (Day > CurrentDay) then|21: Dec(Result);|7: end;|5: end;|4:end;|0:|60:Procedure THiAsmClass.doWork (var _Data:TData; Index:word);|20:var y,m,d,r:integer;|5:Begin|29: y:=ReadInteger(_Data,Year);|30: m:=ReadInteger(_Data,Month);|28: d:=ReadInteger(_Data,Day);|40: _hi_OnEvent(age,CalculateAge(y,m,d) );|4:end;|0:|4:end.| link(age,4469531:doConvert,[]) link(Year,1782885:Var1,[]) link(Month,1782885:Var2,[]) link(Day,1782885:Var3,[]) } Add(ChildGroupBox,1782885,224,112) { link(onEvent1,15720199:doWork1,[(424,118)]) } BEGIN_SDK Add(EditMulti,827109,21,21) { EventCount=1 WorkCount=1 VarCount=3 Height=172 link(doWork1,4807006:doEvent1,[(53,27)(53,34)]) link(Var1,10216611:Text,[(27,171)(34,171)]) link(Var2,4783193:EditText,[(34,178)(167,178)]) link(Var3,14809982:EditText,[(41,185)(188,185)]) } Add(GroupBox,5423929,28,49) { Left=5 Top=5 Width=186 Height=66 Font=[MS Sans Serif,8,1,16711680,1] Caption="Дата рождения" } Add(ComboBox,14809982,168,28) { Left=5 Top=35 Height=21 Text="" ReadOnly=0 Point(EditText) link(onClick,1505806:doWork1,[(242,41)]) } Add(ComboBox,4783193,147,84) { Left=65 Top=35 Width=50 Height=21 Text="" ReadOnly=0 Point(EditText) link(onClick,1505806:doWork2,[]) } Add(Edit,10216611,28,133) { Left=120 Top=35 Width=45 Text="1950" DataType=1 link(onChange,1505806:doWork3,[(242,139)]) } Add(Label,8122923,28,91) { Left=15 Top=15 Width=160 Caption="День Месяц Год" AutoSize=1 } Add(For,14555703,112,28) { Start=1 End=31 link(onEvent,14809982:doAdd,[]) } Add(For,11921511,98,84) { Start=1 End=12 link(onEvent,4783193:doAdd,[]) } Add(Hub,4807006,70,28) { link(onEvent1,14555703:doFor,[]) link(onEvent2,11921511:doFor,[(92,41)(92,90)]) } Add(HubEx,1505806,238,91) { link(onEvent,12240636:doData,[]) } Add(DoData,12240636,252,91) { Data=String() link(onEventData,827109:onEvent1,[(298,97)(298,27)]) } END_SDK Add(Button,9488353,154,161) { Left=5 Top=80 Font=[MS Sans Serif,8,1,0,1] Caption="Счет" link(onClick,10373486:doWork,[]) } Add(Label,15442215,455,161) { Left=10 Top=105 Width=180 Height=25 Font=[MS Sans Serif,12,1,255,1] Caption="" AutoSize=1 Alignment=2 } Add(HubEx,15720199,420,161) { link(onEvent,15442215:doText,[]) } Add(Convertor,4469531,287,161) { Mode=16 Word_1="год" Word_2="года" Word_5="лет" link(onResult,12678:doString,[]) } Add(FormatStr,12678,350,161) { Mask="Вам полных %1" link(onFString,15720199:doWork2,[]) }