![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
...надо удалить из памяти массив(динамический)... очень надо... пробывал втупую писать SetLength(Massiv,0), но он выдает ошибку...
PS: Massiv: array of string; перед удалением минимум 1 элемент есть. |
|
#2
|
||||
|
||||
|
Слегка изменю суть вопроса: прога шифрует текст, перед шифрованием в глобальный массив помещает текс из Мемо1, после шифрования помещает результат(зашифрованный массив) в Мемо2. В итоге у меня остается ненужный массив, однако программа работает и ошибок нету.
Но когда я пытаюсь сделать следущую операцию(например, зашифровать полученный шифр), и по-новой выполняю эту операцию, то как только программа доходит(при трассировке) до строки "SetLength(Massiv, 0);" мне выпадает окно об ошибке и процедура заканчивается ничего несделав. при этом нажав на кнопку ок в окне ошибки и еще раз попытавшись зашифровать текст все работает... вообщем работает через-раз... Сама процедура выглядит примерно так: Код:
...
var MainFrm: TMainFrm;
Massiv: array of string;
...
procedure Crypt(var Sender: TObject);
...
SetLength(Massiv,0);
For i1 := 0 to Memo1.Lines.Count-1 do
begin
SetLength(Massiv, length(Massiv)+1);
Massiv[i1] := Memo1.Lines.Strings[i1];
end;
...
{Здесь выполняется процедура кодирования из библиотеки}
{загруженной методом:}
{WhereDLL := LoadLibrary(PChar('AdresDLL'));}
{if WhereDll <> 0 Then}
{...}
{FreeLibrary(WhereDLL);}
...
end; |
|
#3
|
|||
|
|||
|
В приведенном фрагменте кода я криминала не увидел. Где еще Massiv используется? Проверь, чтоб к нему не было обращений из других потоков.
И какая конкретно ошибка? |
|
#4
|
||||
|
||||
|
Все разобрался в чем проблема была... надо было просто перед тем как библиотеку выгружать обнулить массив, а то он после выгрузки оставался тойже длинны, но с пустыми значениями. А когда процедуру выполнять 2й раз, то он давал ошибку, при этом массив становился нулевым, и в следующий раз уже все нормально выполнялось... вообщем объяснить немогу, но заработало!!!
![]() |