Hola, si solo quieres esos colores yo usaria esto:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
If shape1.brush.Color=clBlack then begin
shape1.Brush.color:=clRed;
end else
shape1.Brush.Color:=clblack;
end;
Si necesitas que cambie mas colores, haría lo que te dijo dec de la variable privada para almacenar el color principal y asignaria el resto de los colores en un array y con una simple funcion irias pasandolos de uno en uno.
Salu2