Nette Idee, funktioniert aber nicht. Ich habe es vorsichtshalber auch nochmal getestet. ShowMessage wird auf keinen Fall ausgeführt.
Eigentlich ist das Verhalten auch korrekt. Wenn die Form zerstört wird, bekommen alle Komponenten, deren Owner die Form ist, die Nachricht, sich zu zerstören. Wenn eine Komponente jetzt im eigenen Destroy einen Event-Handler bekommt, kann es zu merkwürdigen Nebeneffekten kommen. Allein der Zugriff auf andere Komponenten, die auf der Form liegen, kann zu unkontrollierbaren Zugriffsverletzungen führen. Klar kann man die Erstellungsfolge beeinflussen, aber eine Komponente sollte schon richtig gekapselt sein.
Dieses Problem kann mich natürlich auch im BeforeDestruction treffen, aber es handelt sich um eine firmeninterne Komponente, die dann entsprechend dokumentiert ist.
Das, was die Komponente in dem Ereignis machen soll, funktioniert problemlos. Nur eine Rückmeldung an den Anwender müssen wir gegebenenfalls anders lösen. Normalerweise ist die Rückmeldung aber nicht erforderlich.