![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. |