TyttoSoft

DICAS | SOFTWARE | PROGRAMAÇÃO | OPORTUNIDADE



Ocultar aba do PageControl, Criar aba em tempo de execução.



  

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.

 




21/08/2018 20:55 Delphi 586


loading...

Copyright © TyttoSoft 2018 | Desenvolvido por www.TyttoSoft.com.br