Multiple inheritance via objects is not supported in Pascal, but inheritance from multiple interfaces and object delegates are supported (try Google to learn more, as others have explained MUCH better then I can).

As for your set of else if's, no, there is no limit to the size. But, I might suggest the 1st issue of the Delphi Gamer mag that Will puts out. I covered Trie's in that article and they are the optimal (without getting into real lexers) way to handle this. In fact, I've used Trie's to implement generic lexers and tokenizers.

Your basically looking for command based scripting, a topic that was (IMHO) best explained in the book "Game Scripting Mastery", sure, its dated and written from a C prospective, but its the best starter book on the subject.

- Jeremy