Нет, не так написано.
image2.visible=false и image2.visible:=false
это две разные по результату строки.
А что касается вашего кода...
Никогда не пишите такой код. Все это бесконечное количество повторов заменяется парой процедур с циклами.
Для начала заведите массив и заполните его при создании формы. Вы раз в 10 сократите код, если будете работать с массивом. Вот примерно так можно это сделать:
Код:
TForm1 = class(TForm)
...
private
Images: Array[1..12] of TImage;
end;
...
procedure TForm1.FormCreate(Sender: TObject);
Var i: integer;
begin
c := 12;
for i := 1 to 12
do Images[i] := Form1.FindComponent('Image'+IntToStr(i)) as TImage;
end;