Zitat:
Der Ausdruck
Objekt is Klasse
gibt True zurück, wenn Objekt eine Instanz der angegebenen Klasse oder eines ihrer Nachkommen ist. Trifft dies nicht zu, wird False zurückgegeben (hat Objekt den Wert nil, ist der Rückgabewert ebenfalls False). Wenn der deklarierte Typ von Objekt nicht in Beziehung zu Klasse steht (wenn die Typen also unterschiedlich und nicht voneinander abgeleitet sind), gibt der Compiler eine Fehlermeldung aus.
Um mal die (unrevelanten) Aussagen der Delphi- Hilfe wegzulassen...
Da steht geschrieben, dass der Compiler dies tut, da denke ich schon irgendwie, dass es eben nicht (nur) zur Laufzeit passiert.
Der "If then" Konstrukt macht schon Sinn, er prüft ja nicht nur zur CompileZeit (ganz grobe Fälle ab) sondern auch zur Laufzeit.