Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.03.2007, 09:46
Аватар для GeneTic
GeneTic GeneTic вне форума
Прохожий
 
Регистрация: 24.11.2006
Сообщения: 15
Репутация: 10
Смущение Знаю, туплю, но всеже...(про массив)

...надо удалить из памяти массив(динамический)... очень надо... пробывал втупую писать SetLength(Massiv,0), но он выдает ошибку...
PS: Massiv: array of string; перед удалением минимум 1 элемент есть.
Ответить с цитированием
  #2  
Старый 31.03.2007, 13:58
Аватар для GeneTic
GeneTic GeneTic вне форума
Прохожий
 
Регистрация: 24.11.2006
Сообщения: 15
Репутация: 10
По умолчанию дополнение

Слегка изменю суть вопроса: прога шифрует текст, перед шифрованием в глобальный массив помещает текс из Мемо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  
Старый 01.04.2007, 12:54
Holy Holy вне форума
Новичок
 
Регистрация: 31.07.2006
Сообщения: 55
Репутация: 10
По умолчанию

В приведенном фрагменте кода я криминала не увидел. Где еще Massiv используется? Проверь, чтоб к нему не было обращений из других потоков.
И какая конкретно ошибка?
Ответить с цитированием
  #4  
Старый 02.04.2007, 12:58
Аватар для GeneTic
GeneTic GeneTic вне форума
Прохожий
 
Регистрация: 24.11.2006
Сообщения: 15
Репутация: 10
По умолчанию действительно ступил

Все разобрался в чем проблема была... надо было просто перед тем как библиотеку выгружать обнулить массив, а то он после выгрузки оставался тойже длинны, но с пустыми значениями. А когда процедуру выполнять 2й раз, то он давал ошибку, при этом массив становился нулевым, и в следующий раз уже все нормально выполнялось... вообщем объяснить немогу, но заработало!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:43.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter