Oh, zu viel der Ehre.
Aber Danke.
In Deinem Projekt sind mir beim schnellen drauf schauen ein paar Dinge aufgefallen:
- OnCreate wird nicht aufgerufen. Die Ereignisbehandlung ist nicht richtig zugewiesen. (Musst Du mal zuweisen und einen Haltepunkt setzen.)
- Die Methoden Fahr und Flieg und Schwimm rufen sich selbst auf. Das führt zu einem Stack Overflow.
- Deine Klassen leitest Du manchmal von TInterfacedObject ab und manchmal von einer eigenen Basisklasse. Das ist nicht falsch, aber man muss sich immer genau überlegen, von was man ableitet, damit das dann zur Geschäftslogik passt.
- Supports kann noch mehr. Man kann eine eigene Variable dafür benutzen. Ich mache gern das so weil es m.E. übersichtlicher ist:
Delphi-Quellcode:
var
lSchwimm: ISchwimm;
…
if Supports(I, ISchwimm, lSchwimm) then
lSchwimm.Schwimm;
Ich hoffe, das hilft noch etwas weiter...