Add(Button,11027448,140,175)
{
Left=35
Top=70
Height=40
TabOrder=-1
link(onClick,13664348:doData,[])
}
Add(Edit,15128451,203,119)
{
Left=30
Top=30
Width=240
Text=""
DataType=1
}
Add(DoData,13664348,203,175)
{
link(onEventData,12248021:Traffic,[])
link(Data,15128451:Text,[])
}
Add(Edit,10698831,329,175)
{
Left=105
Top=70
Width=165
Height=40
Font=[MS Sans Serif,18,1,0,1]
Text=""
Alignment=2
}
Add(InlineCode,12248021,266,175)
{
@Hint=#18:Конвертер Траффика|
WorkPoints=#24:Traffic=Траффик в байтах|
EventPoints=#31:Result=Результат преобразования|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|0:|22: Result: THI_Event;|51: procedure Traffic (var Data:TData; Index:Word);|0:|5: end;|0:|14:implementation|0:|30:procedure THiAsmClass.Traffic;|0:|31:function KbNew(a:integer):real;|12: var e:real;|6: begin|15: e :=a / 1024;|29: result :=trunc(e*100)*0.01;|0:|5: end;|0:|31:function MbNew(a:integer):real;|12: var e:real;|6: begin|23: e := a / 1024 / 1024;|29: result :=trunc(e*100)*0.01;|5: end;|0:|31:function GbNew(a:integer):real;|12: var e:real;|6: begin|30: e := a / 1024 / 1024 / 1024;|29: result :=trunc(e*100)*0.01;|5: end;|0:|4: var|11: a:integer;|8: b:real;|10: s:string;|1: |5:begin|0:|23: a := ToInteger(Data);|12: case a of|35: 1..1023: s:= Int2Str(a) + ' б';|52: 1024..1048575: s:= Double2str(KbNew(a)) + ' Кб';|63: 1048576..1073741823: s:= Double2str(MbNew(a)) + ' Мб'; |57: 1073741824..maxint: s:= Double2str(GbNew(a)) + ' Гб';|7: end;|0:|0:|2: |0:|25: _hi_OnEvent(Result, s);|0:|4:end;|1: |4:end.|
link(Result,10698831:doText,[])
}
Вроде чуток получилось, но столкнулся с тем что Integer имеет ограничение... как нибудь можно заменить на Int64 ?