Работа с LongWord (DWord)

отредактировано 21:54 Раздел: FastReport 3.0
Здравствуйте,
как можно работать с типом LongWord? Это нужно, например, для передачи значения RootKey в TRegistryIniFile. Если использовать преобразование к типу LongInt, то данные для константы HKEY_CURRENT_USER получаются некорректными.

С уважением, Забурдаев Юрий

Комментарии

  • отредактировано 21:54
    1)А ты случаем форумом не ошибся?
    2)И все же не понял какие именно проблемы тебя постигли, не раз доводилось работать как с реестром так и с LongWord, и вроде никаких трубностей не возникало.
  • отредактировано 21:54
    написал:
    1)А ты случаем форумом не ошибся?
    Если и ошибся, то не сильно. Конечно надо бы это писать в форуме по FastScript, но уж больно он "вялый" какой-то.
    написал:
    2)И все же не понял какие именно проблемы тебя постигли, не раз доводилось работать как с реестром так и с LongWord, и вроде никаких трубностей не возникало.
    FastScript не поддерживает тип LongWord, а параметр TRegistryIniFile.RootKey как раз именно такого типа. Я создал свою обертку для класса TRegistryIniFile и мне необходимо в скрипте присвоить свойству RootKey некоторое значение (в частности HKEY_CURRENT_USER). Я добавил в скрипт константу HKEY_CURRENT_USER. Но вот как быть с ее типом? Как получить ее значение, если тип LongWord не поддерживается? Если использовать преобразование к LonInt, то естественно получаем неправильное значение для значений выходящих за границы типа.

    С уважением, Забурдаев Юрий
  • отредактировано 21:54
    По сути, LongWord - это Integer, те же 32 бита. Функции с параметрами типа LongWord надо объявлять как Integer.
  • отредактировано 21:54
    YuraZ
    Сорри, просто я сразу не понял что ты про FastScript спрашивал ;)
  • отредактировано 21:54
    написал:
    По сути, LongWord - это Integer, те же 32 бита. Функции с параметрами типа LongWord надо объявлять как Integer.
    Да, но:
    Integer –2147483648..2147483647 signed 32-bit
    Longword 0..4294967295 unsigned 32-bit

    Ведь Integer немного другого диапазона. И по идее число 4294967294 будет истолковано неправилбно.
  • отредактировано 21:54
    Исходники есть - добавь свой тип
    и работай.
  • отредактировано 21:54
    Если пытаться в самом скрипте сравнивать два беззнаковых числа, то да, будет неправильно. Но ведь в данном случае сравнивать ничего не надо - просто передать число в делфийскую ф-ю. У меня все указатели на объекты передаются как integer - и ничего, нормально.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.