Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#106: 2018-09-13 12:09:26 ЛС | профиль | цитата
Forget_Flin,
1. Я давно живу.
2. Я прекрасно знаю на что нужны допуски.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 51
Рейтинг: 0
#107: 2018-09-13 12:27:35 ЛС | профиль | цитата
Хорошо
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#108: 2018-09-20 08:01:03 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2018-09-20 11:09:25
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 233
Рейтинг: 12
#109: 2018-10-20 20:55:01 ЛС | профиль | цитата
Добрый вечер мудрейшие!!! Последние несколько дней интенсивно пытаюсь освоить IC, и для начала решил сделать конвертер байт в килобайты и т.д.

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 ?

Редактировалось 1 раз(а), последний 2018-10-20 21:25:42
карма: 2

0
Ответов: 5227
Рейтинг: 586
#110: 2018-10-21 10:52:41 ЛС | профиль | цитата
Iliya писал(а):
как нибудь можно заменить на Int64 ?

Можно, ну а сам что на вход подаёшь

в твоём случае можно и FloatNumber

Add(MainForm,10393453,140,154)
{
Width=606
}
Add(Edit,15128451,259,154)
{
Left=30
Top=30
Width=240
Text=""
DataType=4
link(onChange,12248021:Traffic,[])
}
Add(InlineCode,12248021,329,154)
{
@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|22: Result: THI_Event;|51: procedure Traffic (var Data:TData; Index:Word);|0:|5: end;|0:|14:implementation|0:|0:|48:function BytesToStr(const size: Double): string;|5:const|100: sizes: array [1..9] of string = (' YB', ' Zb', ' Eb', ' Pb', ' Tb', ' Gb', ' Mb', ' Kb', ' byte');|3:var|17: total: integer;|24: rSize,varSize: Double;|6:begin |25: total := Length(sizes);|18: varSize := size;|26: while varSize >= 1024 do|7: begin|15: dec(total);|30: varSize := varSize / 1024;|6: end;|38: rSize := Round(varSize/0.01)*0.01; |49: Result := Double2Str(rSize) + sizes[total]; |4:end;|0:|30:procedure THiAsmClass.Traffic;|3:var|12: d: Double;|5:begin|29: //d := Round(ToReal(Data));|20: d := ToReal(Data);|40: _hi_OnEvent(Result, BytesToStr(d)); |4:end;|1: |4:end.|
link(Result,6420362:doAdd,[])
}
Add(Memo,6420362,406,154)
{
Left=325
Top=25
Width=240
Height=195
AddType=1
}

карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 233
Рейтинг: 12
#111: 2018-10-21 13:08:31 ЛС | профиль | цитата
andrestudio писал(а):
Можно, ну а сам что на вход подаёшь

в твоём случае можно и FloatNumber


Спасибо! Попробую разобраться
карма: 2

0
Ответов: 233
Рейтинг: 12
#112: 2018-10-25 13:00:35 ЛС | профиль | цитата
Подскажите пожалуйста какой функцией можно ограничить количество цифр после запятой, так что-бы если число целое - то все равно ставилось нужное количество нулей?

trunc(e*100)/100; - только сокращает, а нашел в инете Format('%3.2f',[e]); - компилятор вроде и не ругается, но в ответ выводится только f...
карма: 2

0
Ответов: 4621
Рейтинг: 746
#113: 2018-10-25 13:11:28 ЛС | профиль | цитата
ConvertorEx, Mode=NumToFStr
карма: 26

0
Ответов: 233
Рейтинг: 12
#114: 2018-10-25 13:12:44 ЛС | профиль | цитата
Netspirit писал(а):
ConvertorEx, Mode=NumToFStr


Компонент я знаю... я пытаюсь InlineCode освоить
карма: 2

0
Ответов: 16884
Рейтинг: 1239
#115: 2018-10-25 13:53:37 ЛС | профиль | цитата
Iliya писал(а):
какой функцией можно ограничить количество цифр после запятой

Str(Число:Длина:Число знаков после запятой,st);
Данныеst
Str(123:10:2,st) ____123.00
Str(123:0:2,st) 123.00
Str(123:0:3,st) 123.000


Редактировалось 7 раз(а), последний 2018-10-25 15:57:24
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 9906
Рейтинг: 351
#116: 2018-10-25 15:34:11 ЛС | профиль | цитата
-=deleted=-

Редактировалось 1 раз(а), последний 2018-10-25 18:23:56
карма: 9

0
Ответов: 16884
Рейтинг: 1239
#117: 2018-10-25 15:57:50 ЛС | профиль | цитата

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 4621
Рейтинг: 746
#118: 2018-10-25 16:03:06 ЛС | профиль | цитата
Iliya писал(а):
Компонент я знаю... я пытаюсь InlineCode освоить
А, понятно. В таком случае очень классно иметь компонент, у которого можно посмотреть код, реализующий требуемую фукнцию - за это я люблю HiAsm (я так учусь программировать).
карма: 26

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#119: 2018-10-25 16:22:11 ЛС | профиль | цитата
Netspirit писал(а):
В таком случае очень классно иметь компонент, у которого можно посмотреть код, реализующий требуемую фукнцию

Самое интересное, что Tad указал компонент и метод. Достаточно было заглянуть в этот компонент и найти там этот метод, а там как раз и приводится пример функции Str().
карма: 22

0
Ответов: 233
Рейтинг: 12
#120: 2018-10-25 19:07:51 ЛС | профиль | цитата
nesco писал(а):

Netspirit писал(а):
В таком случае очень классно иметь компонент, у которого можно посмотреть код, реализующий требуемую фукнцию

Самое интересное, что Tad указал компонент и метод. Достаточно было заглянуть в этот компонент и найти там этот метод, а там как раз и приводится пример функции Str().


Я просто залез туда еще вчера но так и не понял как работает.... не ругайтесь сильно, я только пытаюсь понять что к чему!

Вот допустим e := trunc(b*100)/100; - работает, а как сюда применить Str(123:0:2,st) не понимаю
карма: 2

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)