Bueno, veo que marto sí que me entendió
Veamos, la linea que te ha puesto marto.
Código:
ShowMessage(TStringList(ObjList[i]).strings[j]);
Tenemos por un lado un contenedor de Objetos (ObjList). Como es un contenedor de objetos, sabemos que lo que hay hay (si lo hay) son objetos, pero no sabemos de que objeto se trata (un button, un stringgrid, un stringlist,.....). Por este motivo se hace el casteo a StringList (ya que sabemos que lo que contiene será eso, un TStringList). Luego, sólo accedemos a una de las propiedades de este objeto (Strings)
Por pasos:
1.- ObjList[i] -> accedemos a un objeto (sin saber cual)
2.- TStringList(ObjList[i]) -> casteamos el objeto a un TStringList ya que sabemos que lo es
3.- TStringList(ObjList[i]).strings[j] -> accedemos a una de las propiedades de este objeto (el StringList)
De echo, si quitas el casteo e intentas compilar... creo que te va a dar un error muy chulo
Espero te sirva