Источник: codingclub
Сегодня я раскажу, как можно создать простейшее и удобное окно мастера. В нём будет создано несколько панелей, каждая из которых будет содержать инфу для определённого шага и при выполнении панели будут просто сменять друг-друга.
Создай новый проект. Брось на форму две кнопки "Назад" и "Далее". Теперь положи на форму компонент TPanel c закладки "Standard".
Установи на нём любые компоненты, а можешь просто сделать какую-нибудь надпись. Теперь брось на форму ещё одну панель. Её нужно поставить прямо над первой панелью.
Теперь создадим обработчик события OnShow для формы и напишем в нём следующее:
procedure TForm1.FormShow(Sender: TObject);
begin
Panel1.Visible:=true;
Panel2.Visible:=false;
Panel3.Visible:=false;
end;
Здесь я делаю все панели невидимыми кроме первой. Теперь нам надо сделать так, чтобы по нажатии кнопки "Дальше" появлялась вторая панель, а затем третья. Для этого в обработчике события OnClick для кнопки "Далее" напишем:
procedure TForm1.Button1Click(Sender: TObject);
begin
//Если видна первая панель, то сделать видимой вторую
if Panel1.Visible=true then
begin
Panel1.Visible:=false;
Panel2.Visible:=true;
exit;
end;
//Если видна вторая панель, то сделать видимой первую
if Panel2.Visible=true then
begin
Panel2.Visible:=false;
Panel3.Visible:=true;
exit;
end;
end;
Теперь, то же самое, только для кнопки "Назад", чтобы мы могли двигатся в обратном порядке - от третей панели к первой. Для этого нужно обработать событие OnClick для кнопки "Назад":
procedure TForm1.Button2Click(Sender: TObject);
begin
if Panel3.Visible=true then
begin
Panel3.Visible:=false;
Panel2.Visible:=true;
exit;
end;
if Panel2.Visible=true then
begin
Panel2.Visible:=false;
Panel1.Visible:=true;
exit;
end;
end;
Вот и всё. Хотя я расскзал, как можно сделать мастер, такую подмену можно использовать везде.