Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];
ВнизInvalid Pointer Operation при работе с дин. массивом. Найти похожие ветки
← →
Kolan © (2005-09-10 14:25) [0]Здравствуйте,
Вот проблемма:
Есть у меня большая структура:PMeasurmentData = ^TMeasurmentData;
TMeasurmentData = record
{OutPut}
OutPutGraff: TArrayOfTPair;
OutPutMeasurments: TArrayOfMeasurmentGrid;
OutPutResAntiRes: TArrayOfTPair;
OutPutName: string;
OutPutCapacity: Double;
{Future compatibility.}
OutPutActiveGarff: TArrayOfTPair;
{InPut}
InPutRange: TArrayOfLongint;
InPutFindResonanceRange: TArrayOfLongint;
InPutStep: Single;
InPutOperator: string;
InPutDevice: string;
InPutDateTime: TDateTime;
InPutNumber: Integer;
{}
IsThisRecordFilled: Boolean;
MeasurmentState: TMeasurmentStates;
CurrentPosition: Longint;
LastCalledPosition: Longint;
end;
Работа сней заключается в заполнении её дин. массивов. для этого я сначала инициализирую её:with MeasurmentDataRec^ do
begin
{...}
if InPutStep = 0 then
GreffLength := 0
else
GreffLength := Round( (InPutRange[High(InPutRange)]
- InPutRange[Low(InPutRange)] ) / InPutStep) + 1;
SetLength(OutPutGraff, GreffLength);
SetLength(OutPutMeasurments, 0);
SetLength(OutPutResAntiRes, 0);
{Future compatibility.}
SetLength(OutPutActiveGarff, 0);
OutPutCapacity := 0;
OutPutName := IntToStr(Number) + " " + Device;
IsThisRecordFilled := True;
CurrentPosition := 0;
LastCalledPosition := 0;
end;
Ну а потом заполняю. Числа приходят с прибора, а всё это дело крутится в потоке.
Размер массиваOutPutGraff
(это график того что пришло с прибора) зависит отInPutRange
(это левый и правый края отрезка, значений X ).
Кроме того таких стуктур у меня много.
Ошибка такая: Установил я пределы 43000 и 44000 с шагом 10 те кол во эл OutPutGraff = 101.
Всё нормально. Если я теперь сделаю 43000 43100 то получу Invalid Pointer Operation в выделенной строке.
Причем если я померел первое измерение(напоминаю у меня много таких записей ) 43000 и 44000 потом второе 43000 43100 и сново вернулся к первому , и измеряю 43000 43100 то ошибки нет.
А если подрад одно и тоже мерить то ошибка есть.
Вопрос где её искать?
← →
Kolan © (2005-09-12 23:10) [1]up
← →
DiamondShark © (2005-09-12 23:30) [2]В приведённом фрагменте ошибок нет.
В приведённом описании смысла нет.
← →
Ученик чародея © (2005-09-12 23:35) [3]>>Kolan © (10.09.05 14:25)
Мухоморы и бубен не пробовали? В таких случаях помогает.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c