I'll try to make this simple for you

var
YourClass:TMyCalssThatIsStoredInMyTFPGLIST;
Begin
For yourClass In MyInstanceOfTheTFPLIST do
YourClass.ClearHand;
End;
That will loop through all the classes you have stored in the TFPGLIST without using indexes etc.
You can incapsulate that within a Procedure to make it easier for you.
Procedure ClearAllHands;
/// Encapsulate above code here;
End;
basically, the compiler will create a Enumerator class in the background and free it when the FOR LOOP is completed.
This Enumerator will return a class instance starting from the first one to the last one.
Jamie