El problema es q es una variable interna tendrias q trabajar con una global a la unidad o si no quieres usar eso ya cualquiera puede tener acceso a esa variable podrias usar un tipo de constante algo especial, un poco de codigo (he modificado algunas cosas)
Código Delphi
[-]
procedure TForm2.Image3MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
{$J+}
const Click : Integer = 1;
{$J-}
var
pix : integer;
cr,cg,cb : byte;
begin
if button <> mbleft then
Exit;
pix := Image3.Canvas.Pixels[X,Y];
cr := pix and $FF;
cg := (pix shr 8) and $FF;
cb := (pix shr 16) and $FF;
case Click of
1: Shape1.Brush.Color:= RGB(cr,cg,cb);
2: Shape2.Brush.Color:= RGB(cr,cg,cb);
3: Shape3.Brush.Color:= RGB(cr,cg,cb);
end;
Inc(Click);
if 3 < Click then
Click := 1;
end;