Vamos criar um novo projeto.
Em nosso Form vamos adicionar um
PageControl localizado na paleta Win32.
em seguida adicione 5 Button localizado
na paleta Standard.
No Caption dos buttons vamos alterar cada um para:
1: Nova Aba
2: Ocultar Aba
3: Voltar
4: Próximo
5: Mostrar Aba
Vamos agora escrever nosso codigo:
no Button Nova Aba:
procedure TForm1.Button1Click(Sender: TObject);
var I:String;
begin
//Pegamos quantidade de abas
//toda vez que for criado uma aba acrecenta
//um mais 1
I:=IntToStr(PageControl1.PageCount+1);
// Aqui criamos nossa aba no PageControl1
with TTabSheet.Create(PageControl1) do
begin
// Aqui o PageControl recebe ele mesmo
PageControl:=PageControl1;
// e aqui damos o nome ao nossa Aba
Name :='Tab'+I;
end;
end;
Pronto agora com esse código criamos nossa aba.
No button Ocultar Aba vamos escrever seguinte código:
procedure TForm1.Button2Click(Sender: TObject);
var I:Integer;
begin
// PageControl1.PageCount pegamos quandidade de abas
// e criamos um for para repetir o procedimento
for I:=0 to PageControl1.PageCount -1 do
begin
// Variavel I vai receber número da Aba
//Page[I] e da um False no Visible da aba
PageControl1.Pages[I].TabVisible:=False;
end;
end;
Pronto já estamos ocultando as abas.
Agora vamos criar ao botão Voltar para esta navegando
as abas:
procedure TForm1.Button3Click(Sender: TObject);
begin
// Se não estiver na primeira aba execute a linha abaixo
// ai ele pega número da Aba e exemplo se esta na aba 2
// ele 2 - 1 ai da aba 2 ele ira para aba 1
// se ele nunca for 0 ele volta um numero Aba
if not(PageControl1.ActivePageIndex = 0) then
PageControl1.ActivePageIndex:=PageControl1.ActivePageIndex - 1;
end;
Pronto já temos nosso botão de ir para um aba anterior.
Vamos criar agora botão para esta indo para próxima aba:
procedure TForm1.Button4Click(Sender: TObject);
begin
// pego a ultima Aba pela quantidade de abas PageControl1.PageCount
// e comparo se não estiver na ultima aba execute a linha abaixo
// ai ele pega número da Aba e acrecenta mais 1 e exemplo se esta na aba 2
// ele 2 + 1 ai da aba 2 ele ira para aba 3
// se ele nunca for total de abas ele passa para proxima Aba
if not(PageControl1.ActivePageIndex = PageControl1.PageCount) then
PageControl1.ActivePageIndex:=PageControl1.ActivePageIndex+ 1;
end;
Agora vamos criar botão mostrar as abas, no Button mostrar
aba escrevemos código:
procedure TForm1.Button5Click(Sender: TObject);
var I:Integer;
begin
// Amqui é o mesmo processo para ocultar
// unica diferença é que damos um True
// no visible da aba
for I:=0 to PageControl1.PageCount -1 do
begin
PageControl1.Pages[I].TabVisible:=true;
end;
end;
Pronto concluido vou colocar toda o código
da minha Unit para você ver como ficou:
(*
TyttoSoft
WhatsApp/Telegram:79 9 88325288
Site:www.tyttosoft.com.br
Blog:www.blog.tyttosoft.com.br
Programação Para iniciantes
*)
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var I:String;
begin
//Pegamos quantidade de abas
//toda vez que for criado uma aba acrecenta
//um mais 1
I:=IntToStr(PageControl1.PageCount+1);
// Aqui criamos nossa aba no PageControl1
with TTabSheet.Create(PageControl1) do
begin
// Aqui o PageControl recebe ele mesmo
PageControl:=PageControl1;
// e aqui damos o nome ao nossa Aba
Name :='Tab'+I;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var I:Integer;
begin
// PageControl1.PageCount pegamos quandidade de abas
// e criamos um for para repetir o procedimento
for I:=0 to PageControl1.PageCount -1 do
begin
// Variavel I vai receber número de cada Aba
//Page[I] e da um False no Visible da aba
PageControl1.Pages[I].TabVisible:=False;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
// Se não estiver na primeira aba execute a linha abaixo
// ai ele pega número da Aba e exemplo se esta na aba 2
// ele 2 - 1 ai da aba 2 ele ira para aba 1
// se ele nunca for 0 ele volta um numero Aba
if not(PageControl1.ActivePageIndex = 0) then
PageControl1.ActivePageIndex:=PageControl1.ActivePageIndex - 1;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
// pego a ultima Aba pela quantidade de abas PageControl1.PageCount
// e comparo se não estiver na ultima aba execute a linha abaixo
// ai ele pega número da Aba e acrecenta mais 1 e exemplo se esta na aba 2
// ele 2 + 1 ai da aba 2 ele ira para aba 3
// se ele nunca for total de abas ele passa para proxima Aba
if not(PageControl1.ActivePageIndex = PageControl1.PageCount) then
PageControl1.ActivePageIndex:=PageControl1.ActivePageIndex+ 1;
end;
procedure TForm1.Button5Click(Sender: TObject);
var I:Integer;
begin
// Amqui é o mesmo processo para ocultar
// unica diferença é que damos um True
// no visible da aba
for I:=0 to PageControl1.PageCount -1 do
begin
PageControl1.Pages[I].TabVisible:=true;
end;
end;
end.
Utilizamos cookies e outras tecnologias semelhantes para melhorar a sua experiência no nosso site.
Ao continuar navegando, você declara que está de acordo com a nossa política de privacidade.
Copyright © TyttoSoft 2018 | Desenvolvido por www.TyttoSoft.com.br