Слегка изменю суть вопроса: прога шифрует текст, перед шифрованием в глобальный массив помещает текс из Мемо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;