Вверх ↑
Этот топик читают: Гость
Ответов: 46
Рейтинг: 6
#1: 2008-07-02 09:25:37 ЛС | профиль | цитата
Компонент BitsToInt (HiAsm 3.65b168) неправильно переводит биты в число.
Пример:

#sha
Make(delphi)
Add(MainForm,7058685,35,28)
{
Left=20
Top=105
Width=185
Height=144
}
Add(Edit,10451767,98,35)
{
Left=15
Top=35
Width=20
TabOrder=8
Hint="Текущая папка"
Text="0"
}
Add(Edit,6335319,161,35)
{
Left=55
Top=35
Width=20
TabOrder=8
Hint="Текущая папка"
Text="0"
}
Add(Edit,16302455,210,35)
{
Left=95
Top=35
Width=20
TabOrder=8
Hint="Текущая папка"
Text="0"
}
Add(Edit,8649644,259,35)
{
Left=135
Top=35
Width=20
TabOrder=8
Hint="Текущая папка"
Text="0"
}
Add(BitsToInt,11692187,154,105)
{
link(onNumber,1169951:doText,[])
link(Bit1,10451767:Text,[(160,86)(104,86)])
link(Bit2,6335319:Text,[])
link(Bit3,16302455:Text,[(174,86)(216,86)])
link(Bit4,8649644:Text,[(181,92)(265,92)])
}
Add(Timer,6687889,98,105)
{
Interval=100
link(onTimer,11692187:doNumber,[])
}
Add(Edit,1169951,252,105)
{
Left=135
Top=85
Width=20
TabOrder=8
Hint="Текущая папка"
Text=""
}
Add(Label,2392971,350,35)
{
Left=10
Top=15
Width=33
Height=17
Caption="bit1(1)"
}
Add(Label,10526424,350,84)
{
Left=50
Top=15
Width=33
Height=17
Caption="bit2(2)"
}
Add(Label,9565278,399,84)
{
Left=90
Top=15
Width=33
Height=17
Caption="bit3(4)"
}
Add(Label,11972878,350,133)
{
Left=130
Top=15
Width=33
Height=17
Caption="bit4(8)"
}
Add(Label,198115,399,35)
{
Left=130
Top=65
Width=33
Height=17
Caption="число"
}

Если например в окошке bit1(1) поставить 1, то дожно получиться число 1, если по 1 в bit1(1) и bit2(2), то должно быть 3.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
vip
#1.1контекстная реклама от партнеров
Администрация
Ответов: 15294
Рейтинг: 1518
#2: 2008-07-02 10:21:54 ЛС | профиль | цитата
именно это и наблюдается в приведенном выше примере
карма: 26
0
Ответов: 8886
Рейтинг: 823
#3: 2008-07-02 10:25:03 ЛС | профиль | цитата
vyachko,
vyachko писал(а):
Если например в окошке bit1(1) поставить 1, то дожно получиться число 1, если по 1 в bit1(1) и bit2(2), то должно быть 3.
так оно и есть, даже если все 1, получается 15 - где ошибка-то?
Кстати, а как в выставляемом коде получить начальную фразу "Make(delphi)"
карма: 19

0
Ответов: 3851
Рейтинг: 159
#4: 2008-07-02 10:25:39 ЛС | профиль | цитата
В дэльфях всё корректно, а под FPC младший бит почему-то имеет вес "2"(в десятичной системе), ну и соответственно все остальные разряды тоже сдвинуты..

PS: версия: HiAsm 3.65 build 168 без обновлений.
карма: 0
начавший
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#5: 2008-07-02 10:28:14 ЛС | профиль | цитата
Galkov правил этот компонент 04.03.08 (начал я, он закончил) и у меня работает под FPC нормально
карма: 22

0
Ответов: 9906
Рейтинг: 351
#6: 2008-07-02 12:07:37 ЛС | профиль | цитата
В FPC неправильно работал intPower: http://hiasm.com/forum.html?q=3&t=7652

Ну это уже - кому как нравится
Может Андрею нравятся проблемы с прозрачностью, алигнами, табами, и т.п. ...
Жванецкий писал(а):
Но можете этого и не делать
Если вас не интересует результат

карма: 9

0
Ответов: 46
Рейтинг: 6
#7: 2008-07-02 12:08:27 ЛС | профиль | цитата
Да, именно под FPC ошибка.

nesco,

nesco писал(а):
Galkov правил этот компонент 04.03.08 (начал я, он закончил) и у меня работает под FPC нормально


А где можно взять исправленный?
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#8: 2008-07-02 12:12:40 ЛС | профиль | цитата
vyachko, вот здесь (ссылки работают в новом форуме)

[svn]BitsToInt.pas[/svn]
карма: 22

0
Ответов: 46
Рейтинг: 6
#9: 2008-07-02 12:17:33 ЛС | профиль | цитата
nesco,
Спасибо, всё работает.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
9
Сообщение
...
Прикрепленные файлы
(файлы не залиты)