こんにちは。
(先日の「配列変数に格納」の続きなのですが)
Formを閉じる際に、配列を初期化させたく
{type - Public宣言部}で、
ArrDelStr: array of String;
procedure TForm1.MyPro(var TestCode: AnsiString);
begin
SetLength(ArrDelStr,length(ArrDelStr)+1);
ArrDelStr[high(ArrDelStr)] := TestCode;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SetLength(ArrDelStr,0);
end;
と、してみました。
これではただ配列の長さを0にしているだけなので
明示的にメモリの開放などを行うべきでしょうか?
また、ヘルプを見てみたのですが、
GetMem・FreeMem・Initialize などを使うのが適切でしょうか?
お分かりの方いらっしゃいましたら、よろしくお願いします。
たぶん、だいじょうぶでしょう。
配列の長さを0に変えても、前に確保したメモリは解放されませんから。
# 配列としての上限は変わります
メモリの解放が必要かどうかは、処理内容によってかわります。
たいていは気にしなくていいと思います。
確保できなくなれば、例外が発生するだけですし。
わかりました!
にしのさん、ありがとうございました。
ツイート | ![]() |