ЭТО НЕСЛОЖНО.
делаем глобальную переменную, в которой храним индекс картинки.
при каждом нажатии на кнопку индекс инкрементируем,
а чтобы он не вышел за границы- применяем функцию mod
Я этот трюк часто применяю Довольно удобно для пользователя
и экономит площадь экрана.
Код:
type
Tz=array[0..2] of record
CFNam, //имя файла с картинкой
Cap:string; //заголовок кнопки
end;
const
Z:Tz=((CFnam:'Pictures1.bmp';Cap:'Картинка1'),
(CFnam:'Pictures2.bmp';Cap:'Картинка2'),
(CFnam:'Pictures3.bmp';Cap:'Картинка3'));
var
Index:integer; //здесь хранится индекс картинки
procedure TForm1.Button1Click(Sender: TObject);
begin
Index:=(Index+1) mod Length(Z);
Button1.Caption:=Z[Index].Cap;
Image1.Picture.LoadFromFile(Z[Index].CFnam);
end;