Types are useful for grouping different types of linked variables together. For example, think about all the pieces of information associated with just the player's character in a game.
Each one is stored in a variable so you have variables called Score, Health, Hunger and so on. With other characters you need different variable names. Types let you create all these separate variables in a package and give it a name.
So, think of a Type as being like a record in a database, where each field can be a different type of variable. So, in a Members database for example you might have a Name field (string), an Age field (integer) and a Height field (float).
In DB, the equivalent of this record is the Type. You could call it Members and define the types of all the variables within it.
Accessing the variables within the Type is simply a case of using the Type's name followed by a full stop and then the name of the variable - such as Members.Name or Members.Age.
Another advantage of this is that you can have a many Types - each using the same 'variable' names within it. So Player.Health, Elf.Health, Orc.Health and Ogre.Health make your programs a lot easier to read and follow.
And, as BN2 Productions points out, the ability to create arrays of Types means you can easily store all the info for all the Orcs and elves in your game - regardless of the number.
TDK_Man