You have the enum right - it's declaring a new type with four possible values. As a side note, it's usual to add a 2 or 3 letter prefix before each value of the type to avoid name clashes - e.g. TColor -> "clBlack", "clWhite", (cl there) or TBorderStyle -> "bsSingle", "bsDialog" (bs) In this case, do not bother about it. There's no point trying to be smart if you're on a course, just do as you're told by the teacher . Your enum'd type is entirely correct.

You've gone slightly off track with the arrays, though. Consider the three main sections when declaring things: var, const and type. You want to declare new types in the "type" section - this is what you have done with declaration of TColours. Your next task is to declare the arrays of a certain type. For this, you want to declare variables of an existing type. To do this, you use the var section.

type section = declare new types here
var section = declare variables *of a pre-declared type*
const section = constant values, cannot be changed

Therefore, you want to do this:

[pascal][background=#FFFFFF][comment=#0000FF][normal=#000000]
[number=#C00000][reserved=#000000][string=#00C000]// step one: declare a new enum'd type
type
TColours = (Blue, Red, Green, Black);

// step two: declare arrays *based on the above type*
var
first_stuff: array[0..3] of TColours;
second_stuff: array[0..11] of TColours;[/pascal]

Now, notice the array declarations - we've used the standard "variable_name: variable_type" style that you'd use elsewhere (e.g. "some_var: Integer"). The type, in this case, is an array of your TColours.

BEWARE when declaring zero-based arrays! Your example was slightly off - 0 is a number too! . Remember that the array bounds are inclusive of the first and last number. Your array[0..4] declared the following:

array[0] <-- notice this!
array[1]
array[2]
array[3]
array[4]

That's five elements, not four! You would want to declare your array either as array[0..3] or array[1..4]. This is a nasty trap - if you're using zero-based arrays, it's always [0..(number of elements - 1)].

Incidentally, I have an article about declaring and using new types. You might be interested: http://www.alistairkeys.co.uk/newtypes.shtml.

That's the first few parts explained. I'm willing to explain the rest too, but I'll let you have a crack at it and you can report back with your efforts first .