Вверх ↑
Этот топик читают: Гость
Ответов: 207
Рейтинг: 14
#466: 2020-05-08 01:35:59 ЛС | профиль | цитата
Netspirit писал(а):
Joiner писал(а):
почему не хочет работать MultiBlockFind
Падает в бесконечный цикл. Надо разбираться.

Netspirit, Получится разобраться или пока забыть про MultiBlockFind в unicode?

Редактировалось 1 раз(а), последний 2020-05-08 01:36:38
карма: 2

0
Ответов: 4612
Рейтинг: 746
#467: 2020-05-08 11:22:09 ЛС | профиль | цитата
Не знаю когда возьмусь. Может на выходных.
карма: 26

1
Голосовали:Joiner
Ответов: 4612
Рейтинг: 746
#468: 2020-05-11 12:02:32 ЛС | профиль | цитата
Поправленный MultiBlockFind для Unicode.
карма: 26

1
Голосовали:Joiner
Ответов: 207
Рейтинг: 14
#469: 2020-05-15 14:39:18 ЛС | профиль | цитата
MTStrTbl при Redaction=True, программа закрывается после компиляции. (FPC-32, FPC-64, FPC-32U, FPC-64U)
Add(MainForm,12319102,119,98)
{
}
Add(MTStrTbl,2813545,175,98)
{
Top=20
Width=380
Height=240
Columns=#1:1|1:2|
Redaction=0
}
UPD: Также в FPC-64, FPC-64U не отображается текст в заголовках

Редактировалось 2 раз(а), последний 2020-05-15 19:24:27
карма: 2

0
Ответов: 4612
Рейтинг: 746
#470: 2020-05-19 11:49:49 ЛС | профиль | цитата
Будет исправлено.
карма: 26

0
Ответов: 60
Рейтинг: 0
#471: 2020-05-26 10:27:20 ЛС | профиль | цитата
Неправильно работает roun в Math элементе при компиляции с fpc-64. Или так и должно работать roun?
карма: 1

0
Ответов: 4612
Рейтинг: 746
#472: 2020-05-26 11:14:28 ЛС | профиль | цитата
А в 32? Проверил - вроде, одинаково работает. Покажи какие аргументы используешь, какой ожидаешь результат, а какой получаешь.
карма: 26

0
Ответов: 60
Рейтинг: 0
#473: 2020-05-26 11:43:36 ЛС | профиль | цитата
С fpc-32 вроде нормально.
Пример программы:


Make(delphi)
ver(4.05 build 186)
Add(MainForm,2953706,168,112)
{
}
Add(Edit,16493221,280,63)
{
Left=100
Top=25
Width=90
Text="0"
DataType=4
}
Add(Label,114522,231,105)
{
Left=30
Top=30
Width=56
Height=17
Caption="Интервал:"
}
Add(Button,8784902,259,161)
{
Left=75
Top=120
Caption="Расчет"
link(onClick,6402252:doStart,[(313,167)(313,188)])
}
Add(Label,385250,259,294)
{
Left=215
Top=70
Width=10
Height=17
Caption="0"
}
Add(Label,5293251,189,189)
{
Left=25
Top=70
Width=184
Height=17
Caption="Результаты расчета а=а+интервал:"
}
Add(Button,1716750,266,210)
{
Left=155
Top=120
Width=75
Caption="Стоп расчет"
link(onClick,6402252:doStopFlag,[(317,216)(317,202)])
}
Add(Thread,6402252,336,182)
{
Delay=10
Point(doStopFlag)
link(onExec,8551238:doOperation,[])
}
Add(Math,8551238,406,182)
{
link(onResult,10995022:doValue,[])
link(Op1,3823148:Var2,[(412,160)(286,160)])
link(Op2,9767187:Var1,[(419,170)(451,170)(451,226)])
}
Add(Memory,10995022,476,182)
{
Default=Real(0)
link(onData,4863987:doOperation,[(524,188)(524,153)])
}
Add(Button,1979999,266,357)
{
Left=75
Top=170
Width=105
Caption="Сначало расчета"
link(onClick,10995022:doClear,[(387,363)(387,195)])
}
Add(Math,4863987,539,147)
{
OpType=35
link(onResult,385250:doText,[(590,153)(590,271)(247,271)(247,300)])
link(Op1,9767187:Var3,[(545,132)(468,132)])
link(Op2,3823148:Var3,[(552,135)(420,135)(420,152)])
}
Add(GetDataEx,3823148,280,147)
{
link(Data,16493221:Text,[])
}
Add(GetDataEx,9767187,462,221)
{
Angle=1
link(Data,10995022:Value,[(482,226)])
}

карма: 1

0
Ответов: 4612
Рейтинг: 746
#474: 2020-05-26 13:01:31 ЛС | профиль | цитата
Добавил ListBox, ввиду отсутствия более конкретных данных ввел число "от фонаря", результат одинаков для Delphi и FPC-64:


Может в моей версии уже поправлено.
карма: 26

0
Ответов: 207
Рейтинг: 14
#475: 2020-05-26 13:19:37 ЛС | профиль | цитата
У меня на FPC-64

На 32 норм.

--- Добавлено в 2020-05-26 13:23:44

С MathParse так же при 64

Add(MathParse,11844326,637,322)
{
MathStr="round(%1,%2)"
}


Редактировалось 1 раз(а), последний 2020-05-26 13:23:44
карма: 2

0
Ответов: 4612
Рейтинг: 746
#476: 2020-05-26 16:48:02 ЛС | профиль | цитата
Если проблема в лишних знаках после запятой - то не знаю как лечить. Будем считать это повышенной точностью 64-битного компилятора
карма: 26

1
Голосовали:sаmakacd
Ответов: 60
Рейтинг: 0
#477: 2020-05-26 17:15:19 ЛС | профиль | цитата
Почему у тебя, Netspirit, нормально округляет с fpc-64, у меня нет. В чем может быть проблема? Если так у меня считает, мне чтобы округлить число, надо в начале его перевести в текстовую строку, потом удалить лишние цифры, потом опять перевести в число?
карма: 1

0
Ответов: 207
Рейтинг: 14
#478: 2020-05-26 18:02:40 ЛС | профиль | цитата
Netspirit писал(а):
Будем считать это повышенной точностью 64-битного компилятора

Тут дело даже не в Round. Простое сложение, но уже с пониженной точностью

6.06+1.01=7.069999999999999


Редактировалось 1 раз(а), последний 2020-05-26 18:14:35
карма: 2

0
Ответов: 4612
Рейтинг: 746
#479: 2020-05-27 12:01:16 ЛС | профиль | цитата
Возможно, функция конвертации Double в строку как-то отличается, не округляет что-то. Или где-то есть потеря точности.
карма: 26

0
Ответов: 207
Рейтинг: 14
#480: 2020-05-27 14:18:25 ЛС | профиль | цитата
Netspirit писал(а):
Возможно, функция конвертации Double в строку как-то отличается, не округляет что-то.

Что-то с Real не то в 64.
Если вместо переменных вставить так x:= 1.01 + 6.06; То нормально.


Add(MainForm,2953706,406,259)
{
Width=319
Height=65
Position=1
link(onCreate,2834044:dotest,[])
}
Add(InlineCode,2834044,462,273)
{
WorkPoints=#6:dotest|
EventPoints=#5:onRes|
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|19: onRes:THI_Event;|50: procedure dotest(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|28:procedure THiAsmUnit.dotest;|15:var x1,x2:Real;|7:x:Real;|6:begin |9:x1:=6.06;|9:x2:=1.01;|11:x:=x1 + x2;|18://x:= 1.01 + 6.06;|21:_hi_OnEvent(onRes,x);|4:end;|4:end.|
link(onRes,2953706:doCaption,[(502,279)(502,242)(394,242)(394,265)])
}
Или так у меня только
карма: 2

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