1
Ваши вопросы / Ошибка при очистке списка во время закрытия проекта
« : 16 Января 2023, 13:03:47 »
Добрый день! У меня есть глобальный модуль, в котором объявлен список и массив, согласно руководству необходимо очищать данные во время закрытия проекта во избежание утечки памяти. Заметила, что судя по логам возникает ошибка:
что неверно?
код скрипта alarms_list:
Код
11:36:43.096 | Ошибка в скрипте "alarms_list" в строке 90. Access violation at address 0040A574 in module 'Server.exe'. Read of address FFFFFFFC
11:36:43.096 | Необработанная ошибка в скрипте "alarms_list" в строке 91. Access violation at address 0040A574 in module 'Server.exe'. Read of address FFFFFFFC
код скрипта alarms_list:
Код: (delphi)
interface
var
aList: TM_List; // объявляем список для сигналов об авариях
mArray: Array of Boolean; // создаем массив для хранения информации о том, отправились ли сообщения об авариях
implementation
initialization
// во время запуска проекта
aList := TM_List.Create; // создаём список
aList.Add(alarm_1); // заполняем список сигналами об авариях (при создании нового сигнала об аварии добавить его сюда)
aList.Add(alarm_2);
aList.Add(alarm_3);
aList.Add(alarm_4);
aList.Add(alarm_5);
aList.Add(alarm_6);
aList.Add(alarm_7);
aList.Add(alarm_8);
aList.Add(alarm_9);
aList.Add(alarm_10);
aList.Add(alarm_11);
aList.Add(alarm_12);
aList.Add(alarm_13);
aList.Add(alarm_14);
aList.Add(alarm_15);
aList.Add(alarm_16);
aList.Add(alarm_17);
aList.Add(alarm_18);
aList.Add(alarm_19);
aList.Add(alarm_20);
aList.Add(alarm_21);
aList.Add(alarm_22);
aList.Add(alarm_23);
aList.Add(alarm_24);
aList.Add(alarm_25);
aList.Add(alarm_26);
aList.Add(alarm_27);
aList.Add(alarm_28);
aList.Add(alarm_29);
aList.Add(alarm_30);
aList.Add(alarm_31);
aList.Add(alarm_32);
aList.Add(alarm_33);
aList.Add(alarm_34);
aList.Add(alarm_35);
aList.Add(alarm_36);
aList.Add(alarm_37);
aList.Add(alarm_38);
aList.Add(alarm_39);
aList.Add(alarm_40);
aList.Add(alarm_41);
aList.Add(alarm_42);
aList.Add(alarm_43);
aList.Add(alarm_44);
aList.Add(alarm_45);
aList.Add(alarm_46);
aList.Add(alarm_47);
aList.Add(alarm_48);
aList.Add(alarm_49);
aList.Add(alarm_50);
aList.Add(alarm_51);
aList.Add(alarm_52);
aList.Add(alarm_53);
aList.Add(alarm_54);
aList.Add(alarm_55);
aList.Add(alarm_56);
aList.Add(alarm_57);
aList.Add(alarm_58);
aList.Add(alarm_59);
aList.Add(alarm_60);
aList.Add(alarm_61);
aList.Add(alarm_62);
aList.Add(alarm_63);
aList.Add(alarm_64);
aList.Add(alarm_65);
aList.Add(alarm_67);
aList.Add(alarm_68);
aList.Add(alarm_69);
aList.Add(alarm_70);
aList.Add(alarm_74);
aList.Add(alarm_75);
aList.Add(alarm_76);
aList.Add(alarm_77);
aList.Add(alarm_78);
SetLength(mArray, aList.Count);
finalization // во время выключения проекта
FreeAndNil(aList); // !!! обязательно удаляем список (89 строка)
FreeAndNil(mArray); // (90 строка)
end.