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