Вверх ↑
Этот топик читают: Гость
Ответов: 9906
Рейтинг: 351
#1: 2016-04-30 17:33:06 ЛС | профиль | цитата
Ну, или -- с фиксированной точкой...
Может кому и сгодится:

Сравнительный пример в IC

Add(MainForm,11461893,203,91){
Width=800
Position=1
link(onCreate,4639595:doWork2,[])
}
Add(ChildPanelEx,3073387,203,147)
{
link(onAdd,7918486:doRandom,[(256,153)(256,104)])
link(onClear,10965255:doEvent1,[])
link(onRandomize,4639595:doWork3,[(263,167)])
}
BEGIN_SDK
Add(EditMultiEx,8510835,21,21)
{
EventCount=#5:onAdd|7:onClear|11:onRandomize|
Width=328
Height=214
}
Add(Button,8947159,112,105)
{
Left=3
Top=3
Width=100
Height=23
Align=1
TabOrder=-1
Caption="ADD"
link(onClick,1655051:doWork2,[(151,111)(151,27)])
}
Add(Button,291841,112,175)
{
Left=3
Top=3
Width=100
Height=23
Align=1
TabOrder=-1
Caption="RUN"
Point(doCaption)
link(onClick,15560006:doSwitch,[])
}
Add(Panel,5651587,35,105)
{
Width=514
Height=29
Align=2
BorderWidth=3
BevelInner=0
BevelWidth=0
}
Add(Button,4316003,175,105)
{
Left=103
Top=3
Width=100
Height=23
Align=1
TabOrder=-1
Caption="Clear"
link(onClick,8510835:onClear,[(214,111)(214,34)])
}
Add(Button,15095908,238,105)
{
Left=203
Top=3
Width=100
Height=23
Align=3
TabOrder=-1
Caption="Randimize"
link(onClick,8510835:onRandomize,[(277,111)(277,41)])
}
Add(Switch,15560006,175,175)
{
DataOn=String(STOP)
DataOff=String(RUN)
Point(onOn)
Point(onOff)
link(onSwitch,291841:doCaption,[(214,181)(214,167)(102,167)(102,181)])
link(onOn,688935:doTimer,[])
link(onOff,688935:doStop,[])
}
Add(Timer,688935,238,182)
{
Interval=100
Enable=1
link(onTimer,1655051:doWork3,[(312,188)])
}
Add(HubEx,1655051,308,21)
{
link(onEvent,8510835:onAdd,[])
}
END_SDK
Add(StyleXP,4255676,203,196)
{
}
Add(Memo,1963036,644,154)
{
Left=270
Top=140
Width=240
Align=1
Font=[Lucida Console,12,0,0,204]
ModeSp=3
ScrollBars=3
Point(doSetSelStart)
Point(doEnsureVisible)
}
Add(Memo,1566768,644,77)
{
Left=270
Top=140
Width=240
Align=5
Font=[Lucida Console,12,0,0,204]
ScrollBars=3
Point(doSetSelStart)
Point(doEnsureVisible)
}
Add(Random,7918486,315,98)
{
Min=-90
Max=90
Mode=1
link(onRandom,1523625:doCalc,[])
}
Add(MathParse,1523625,378,98)
{
DataCount=1
MathStr="tg(%1)^21"
AngleMode=1
link(onResult,11611291:doEvent1,[])
}
Add(HubEx,4639595,259,105)
{
link(onEvent,7918486:doRandomize,[])
}
Add(Length,8350174,588,105)
{
link(onLength,1566768:doSetSelStart,[])
link(Str,1566768:Text,[(594,96)(629,96)(629,131)(650,131)])
}
Add(Hub,4633786,553,98)
{
OutCount=3
link(onEvent1,1566768:doAdd,[(578,104)(578,83)])
link(onEvent2,8350174:doLength,[])
link(onEvent3,1566768:doEnsureVisible,[])
}
Add(Hub,10965255,406,154)
{
link(onEvent1,1566768:doClear,[(431,160)(431,90)])
link(onEvent2,1963036:doClear,[])
}
Add(Hub,11611291,448,98)
{
link(onEvent1,4633786:doEvent1,[])
link(onEvent2,16409841:doConvert,[(473,111)(473,181)])
}
Add(Length,14099736,588,182)
{
link(onLength,1963036:doSetSelStart,[])
link(Str,1963036:Text,[(594,173)(629,173)(629,208)(650,208)])
}
Add(Hub,6772196,553,175)
{
OutCount=3
link(onEvent1,1963036:doAdd,[(578,181)(578,160)])
link(onEvent2,14099736:doLength,[])
link(onEvent3,1963036:doEnsureVisible,[])
}
Add(InlineCode,16409841,497,175)
{
@Hint=#42:Конвертор вывода в экспоненциальную форму,|26:или с фиксированной точкой|
WorkPoints=#9:doConvert|
EventPoints=#9:onConvert|
Code=#15:unit HiAsmUnit;|0:|9:interface|21:uses kol,Share,Debug;|0:|4:type|29: THiAsmClass = class(TDebug)|10: public|26: onConvert:THI_Event;|50: procedure doConvert(var dt:TData; idx:word);|6: end;|0:|14:implementation|17:uses hiMathParse;|0:|32:procedure THiAsmClass.doConvert;|45:var Rman,Rexp:real; Iexp:integer; out:string;|5:begin|21: Rman := ToReal(dt);|26: if Rman <> 0 then begin |90: Rexp := Rman; if Rexp < 0 then Rexp := -Rexp; // = abs(Rman)|91: Rexp := LogN(10, Rexp); // = LogN(10,abs(Rman))|93: Iexp := trunc(Rexp); if Rexp < Iexp then dec(Iexp); // Iexp := floor(LogN(10,abs(Rman)));|42: if (Iexp > 19)or(Iexp < -3) then begin|41: Rman := Rman * IntPower(10, -Iexp);|28: out := int2str(Iexp); |40: if Iexp < 0 then out := 'E' + out |29: else out := 'E+' + out;|8: end;|6: end;|58: _hi_CreateEvent(dt, @onConvert, double2str(Rman) + out);|4:end;|0:|4:end.|
link(onConvert,6772196:doEvent1,[])
AddHint(-190,5,147,39,@Hint)
}

Редактировалось 2 раз(а), последний 2016-08-31 09:55:25
карма: 9

0
vip
#1.1контекстная реклама от партнеров
Ответов: 1535
Рейтинг: 176
#2: 2016-05-05 18:39:00 ЛС | профиль | цитата
Galkov, кажется InlineCode загрузился битым.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 9906
Рейтинг: 351
#3: 2016-05-06 06:04:54 ЛС | профиль | цитата
Блин, проверял же вроде.
Кто-то, как оказалось, в той самой строке скоммуниздил аж 4 пробела ... Один - с нарушениями формата, и еще три - без нарушений.
Сдуреть можно.

Сейчас-то - нормально, или как
(у меня - ДА)
карма: 9

0
Ответов: 1535
Рейтинг: 176
#4: 2016-05-06 09:34:52 ЛС | профиль | цитата
Galkov писал(а):
Сейчас-то - нормально, или как
Да, нормально.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

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