Nenhum comentário


PageControl e TabControl

O PageControl é um ótimo componente para distribuir controles e componentes em abas, à medida que esses venham a ser em grande número dentro do formulário. O que nos auxilia a não ter uma interface “poluída”, que pode trazer uma má impressão da aplicação.

No PageControl podemos atribuir ícones para suas abas (ImageIndex), alterar o estilo da aba (Style) e sua posição (TabPosition). Na Figura temos várias configurações do componente.

 

Quando colocamos controles ou componentes dentro das abas do PageControl, esses ficam acessíveis somente quando a aba estiver sendo mostrada, pois cada aba do PageControl é um TabSheet.

Isso não ocorre com o TabControl, que poderíamos caracterizar como um componente que possui uma lista de abas, sendo alternadas somente em tempo de execução.

 

O componente pode ser muito útil num exemplo de agenda, onde teríamos um Grid dentro do TabControl e várias abas, onde filtraríamos os dados de acordo com a aba selecionada.

Para isso, adicione no formulário os seguintes componentes: um ClientDataSet (carregue o arquivo employee.xml), um DataSource, um DBGrid, um TabControl (adicione as abas através da propriedade Tabs).

 

Ligue os componentes Data-Aware e cole o DBGrid “dentro” do TabControl (altere Align do DBGrid para alClient). No evento OnChange do TabControl adicione o seguinte código:

 

procedure TForm6.TabControl1Change(Sender: TObject);

begin

  ClientDataSet1.Filter := '';

  ClientDataSet1.Filter := 'LASTNAME='+

    QuotedStr(

      TabControl1.Tabs[TabControl1.TabIndex]+'*');

  ClientDataSet1.Filtered := True;

end;

 

Nota: usamos o Filter do ClientDataSet apenas para fins didáticos. Em uma aplicação utilize SQL com consultas parametrizadas.

 

Altere para True a propriedade MultiLine para mostrar todas as abas do TabControl, que possui, assim como o PageControl, as propriedades Style e TabPosition (Figura).