|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | 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й раз, то он давал ошибку, при этом массив становился нулевым, и в следующий раз уже все нормально выполнялось... вообщем объяснить немогу, но заработало!!!   |