私は、Delphi について根本的な疑問を 1 つ持っています。設計時にコンポーネントを保持する場合、たとえば TADOConnectuion でボタンをクリックすると、次のコードを記述してもエラーは発生しません。
begin
ADOConnection.Free; //No error
ADOConnection.Free; //No error
ADOConnection.Free; //No error
end;
しかし、実行時に次のように同じオブジェクトを作成すると、「アクセス違反...」エラーが発生します
begin
ADOConnection := TADOConnection.create(self);
ADOConnection.Free; //No error
ADOConnection.Free; //Getting an "Access Violation..." error
end;
以下のようにオブジェクトを作成しても、同じエラーが発生します。
ADOConnection := TADOConnection.create(nil);
このような動作の背後にある理由、つまり、設計時にコンポーネントを保持しているときにエラーが発生しない理由を知りたいですか?