「CustomParam」という名前のクラスへのポインタを作成したいので、宣言しました
pCustomParam = ^CustomParam
Class CustomParam は、コンストラクターで 0 に設定する必要がある次のクラス変数を取得しました。
var keyArray: array of String;
var valueArray: array of String;
var paramArray: array of pCustomParam;
var isParamArray: array of Boolean;
var size: Integer;
コンストラクタは次のようになります。
constructor CustomParam.create;
begin
inherited;
size:= 0;
SetLength(keyArray,0);
SetLength(valueArray,0);
SetLength(isParamArray,0);
SetLength(paramArray,0);
end;
そして次のように宣言されました:
constructor create; overload;
ここで、次のように「new」を使用して CustomParam へのポインターを作成しようとします。
var pointerToCustomParam: pCustomParam;
begin
new(pointerToCustomParam);
ただし、CustomParam クラスのコンストラクターにはジャンプしません。次のようにコンストラクターを手動で呼び出す場合:
pointerToCustomParam^.create;
アプリケーションは SetLength コマンドでクラッシュします。
私が気づいたのは、変数「pointerToCustomParam」が「新しい」関数の直後にごみのコンテンツを取得したことです。
あなたが私を助けることができ、情報が十分であることを願っています:)
ありがとうございました :)