Hallo iaby,
beherzige auf jeden Fall die Hinweise aller anderen. Die sind absolut korrekt (hab ich auf die Schnelle nur übersehen).
Zu Deiner abschließenden Erkenntnis folgendes:
Greife innerhalb der Methoden Deines Objektes nie mit einer führenden Instanz-Variablen auf eigene Methoden zu. Sicher deklarierst Du in der Regel im Kopfteil Deiner
Unit eine Variable vom Typ Deines Objektes. Der Sinn ist aber eher, dass du unterschiedliche Instanzen bilden kannst. Verwendest Du hierbei nicht die in deiner
Unit angegebene (ganz normal), so fangen die Probleme an.
Außerdem kannst du innerhalb der Methoden Deines Objectes jede andere Mothode deines Objektes ohne führende Instanz aufrufen. Die Bezüge gelten dort immer auf "self".
Das heist, dass Deine Methode (Function) IsValid in jeder Methode deines Objektes einfach so aufgerufen werden kann, und es wird die eigene verwendet.
Man hab ich mir einen abgebrochen. Ich hoffe es war verständlich.
Gruß oki