1

Showイベントのフォームにコンポーネントを動的に作成しています。次回の OnShow イベントではコンポーネントを再度作成する必要があるため、Close イベントですべてのコンポーネントを破棄する必要があります。ここでは、データ行の数に応じてコンポーネントの数が変更されます。私は使用しています

this->DestroyComponents();  
this->Close(); 

しかし、次に呼び出すと、アクセス違反が表示されるか、コンポーネントが既に存在するというメッセージが表示されます。コンポーネントがまったく破棄されなかったからです。

フォームとそのコンポーネントを正しく破棄する方法は?

4

1 に答える 1

1

TList や TObjectList などで作成したコンポーネントを追跡し、必要に応じてそれをループして、delete各コンポーネントを呼び出す必要があります。

于 2012-11-24T02:29:04.943 に答える