Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

bdexterholland

page control não exibe abas

Recommended Posts

beleza galera!

Tô fazendo um programinha pra rolar no lugar do explorer do windows. Quero colocar Abas e outras coisas que receber de sugestão ^^'

 

porém, tenho um problema com o sistema de abas. tenho o seguinte código:

procedure Tjanelaprincipal.CriaNovaAba(Dono: TPageControl); var   newtab : TTabSheet;   shelltree: TShellTreeView;   shellfiles: TShellListView;   spliter : TSplitter; begin   inc(abas);   newtab := TTabSheet.Create(Dono);   shelltree := TShellTreeView.Create(dono);   shellfiles := TShellListView.Create(dono);   spliter := TSplitter.Create(dono);   newtab.tag := abas;   Dono.ActivePage := newtab;   newtab.Visible := true;   newtab.Caption := 'Aba '+inttostr(abas);    shelltree.Visible := true;   shelltree.Parent := newtab;   shelltree.Align := alLeft;   shelltree.name := 'TREE' + inttostr(abas);    shellfiles.Visible := true;   shellfiles.Parent := newtab;   shellfiles.Align := alClient;   shellfiles.Name := 'FILELIST' + inttostr(abas);    spliter.Visible := true;   spliter.Parent := newtab;   spliter.Align := alLeft;   spliter.Name := 'SPLITER' + inttostr(abas); end;

O page control não exibe as abas novas. Alguém consegue detectar o problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema resolvido!

 

Faltou setar o dono da nova aba com o comando

 

newtab.pagecontrol := dono;

 

no fim, o código ficou assim:

procedure Tjanelaprincipal.CriaNovaAba(Dono: TPageControl);var   newtab : TTabSheet;   shelltree: TShellTreeView;   shellfiles: TShellListView;   spliter : TSplitter;begin   inc(abas);   newtab := TTabSheet.Create(Dono);   shelltree := TShellTreeView.Create(dono);   shellfiles := TShellListView.Create(dono);   spliter := TSplitter.Create(dono);   newtab.tag := abas;   Dono.ActivePage := newtab;   newtab.Visible := true;   newtab.Caption := 'Aba '+inttostr(abas);   shelltree.Visible := true;   shelltree.Parent := newtab;   shelltree.Align := alLeft;   shelltree.name := 'TREE' + inttostr(abas);   shellfiles.Visible := true;   shellfiles.Parent := newtab;   shellfiles.Align := alClient;   shellfiles.Name := 'FILELIST' + inttostr(abas);   spliter.Visible := true;   spliter.Parent := newtab;   spliter.Align := alLeft;   spliter.Name := 'SPLITER' + inttostr(abas);end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso alguém queria aproveitar o código, para saber qual objeto está com o foco, crie uam função como essas:

function EditAtivo : TEdit;begin  Result := tEdit(janelaprincipal.PageControl1.ActivePage.FindChildControl('EDIT'+inttostr(janelaprincipal.PageControl1.ActivePage.tag)));end;

 

function TreeViewAtivo : TShellTreeView;begin  result := TShellTreeView(janelaprincipal.PageControl1.ActivePage.FindChildControl('TREE'+inttostr(janelaprincipal.PageControl1.ActivePage.tag)));end;

 

function ListViewAtivo : TShellListView;begin  result := TShellListView(janelaprincipal.PageControl1.ActivePage.FindChildControl('FILELIST'+inttostr(janelaprincipal.PageControl1.ActivePage.tag)));end;

É necessário adaptar o código substituindo o nome do form que eu coloquei para o que você está usando

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.