|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Что-то с переменной
У меня в проге объявлен тип
Код:
EpurData = record X: real; M, Q: real; end; ArrEpurData = array of EpurData; TEpurRez = packed record L, Ra, Rb, Ma, Mb, H: real; Mmax, MXmax, Mmin, MXmin: real; Qmax, QXmax, Qmin, QXmin: real; X1_N: dArrRe; Epura: ArrEpurData; end; var EpurRez: TEpurRez; Почему, когда я передаю переменную в качестве параметра в процедуру присоединеного модуля Rasch, происходит что-то странное, у переменной почему-то обнуляются некоторые поля: L, Ma, Mb???? |
#2
|
|||
|
|||
"packed record" давно не в моде. Упаковка в памяти данных не актуальна, да и доступ к ним медленный. Тип Real в Delphi тоже оставлен для соместимости и его применять не рекомендуется.
Real меняется на Double, "packed record" на "record" и все будет в порядке, если нет других подводных камней при присвоении значений полям стурктуры. Обратите внимаение на то что в структуре есть динамические массивы, а применяется "packed record". В какое месиво превратиться упакованная структура, если во время выполнения ее размеры постоянно изменяются. Не забывайте делать резервные копии Последний раз редактировалось san-46, 22.09.2008 в 10:37. |