ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

page control, como NÃO ordernar os tabsheets

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
daniel775
Profissional
Profissional


Registrado: Quinta-Feira, 17 de Janeiro de 2013
Mensagens: 721
Localização: Amparo SP

MensagemEnviada: Qua Mai 27, 2015 1:40 pm    Assunto: page control, como NÃO ordernar os tabsheets Responder com Citação

Boa tarde galera, tudo bem?
vejam se vocês podem me ajudar:

pretendo montar meu programa inteiro dentro de 1 form somente,
então queria trabalhar com pagecontrol.

Onde ao iniciar o programa eu deixaria todos os TabSheet invisivel,
e conforme o usuario for abrindo as paginas no menu eu faria com que abrisse uma a uma.

porém supondo que criei os TabSheet 1, 2 e 3.

se o usuario abrir o 3 primeiro, blz!

mas se ele abrir o 2 a aba irá aparecer antes do 3, e não depois!

será que existe uma maneira de abrir as abas na ORDEM QUE O USUARIO clicar?

Obrigado.
_________________
"Água mole em pedra dura, tanto bate até q fura!", diz o filósofo...
"Essa !@#%& vai ter q funcionar", diz o programador.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
rique_neves
Mestre
Mestre


Registrado: Sexta-Feira, 17 de Fevereiro de 2012
Mensagens: 873

MensagemEnviada: Qua Mai 27, 2015 5:16 pm    Assunto: Re: page control, como NÃO ordernar os tabsheets Responder com Citação

não entendi muito bem!
Isso ficará gravado? tipo ele fechar aplicação, abrirá a ultima!


Neste exemplo vc pode selecionar com qual tab trabalhar.. si for gravar,basta gravar no arquivo ini o numero do tab e passar no ato de execução.

Código:
var
iPage: Integer;
begin
       PageControl1.ActivePageIndex := 0; // pagina inicial a ser iniada
    //ocultando botoes no pagecontrol
       for iPage := 0 to PageControl1.PageCount - 1 do
           PageControl1.Pages[ipage].TabVisible :=false;
           if ( PageControl1.PageCount > 0 ) then
              PageControl1.ActivePage := PageControl1.Pages[0];
              PageControl1.Style := tsButtons;
end;


Código:
TabControl1.TabIndex :=  0;  // pagina inicial a ser iniada
              for iPage :=0 to TabControl1.ControlCount -1 to
              TabControl1.iPage[iPage].Visible := False;
              if (TabControl1.ControlCount >0) then
                TabControl1.ComponentIndex := TabControl1.Controls[0];
               TabControl1.Style := tsButtons;



Não testei, caso dê erro poste aí.
_________________
Atrás de todo problema a uma oportunidade brilhantemente disfarçada!
Compartilhar Imagens .: http://s124.photobucket.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Qui Mai 28, 2015 8:00 am    Assunto: Responder com Citação

isso pode causar lentidao na hora de abrir o programa, devido ao numero de componentes q precisao ser criados na inicializacao.

o melhor seria vc criar os tabsheets em tempo de execucao, e criar os formularios dentro dos tabsheets.

de uma pesquisa por TDI

veja esta pesquisa no google:

https://www.google.com.br/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=delphi+tdi

este link (na minha pesquisa é o primeiro): https://github.com/stavarengo/delphi-tdi ja tem uma classe q faz tudo isso sozinha. so adicionar ao projeto e seguir o exemplo.
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
daniel775
Profissional
Profissional


Registrado: Quinta-Feira, 17 de Janeiro de 2013
Mensagens: 721
Localização: Amparo SP

MensagemEnviada: Qui Mai 28, 2015 8:48 am    Assunto: Responder com Citação

Bom dia galera, obrigado pelo retorno.
entendi, bom a aplicação é pequena mas pode crescer né.

cara eu não entendi direito, até em criar um form blz. mas ai como eu vou desenvolver os conteudos dentro dele se eu criar em tempo de execução: Sad

Código:
var
   aForm : TForm1;
   tabSheet : TTabSheet;
begin
   //Create a new tab sheet
   tabSheet := TTabSheet.Create(PageControl1) ;
   tabSheet.PageControl := PageControl1;

   //create a form
   aForm := TForm1.Create(tabSheet) ;
   aForm.Parent := tabSheet;
   aForm.Align := alClient;
   aForm.BorderStyle := bsNone;
   aForm.Visible := true;
   tabSheet.Caption := aForm.Caption;

   //activate the sheet
   PageControl1.ActivePage := tabSheet;


end;

_________________
"Água mole em pedra dura, tanto bate até q fura!", diz o filósofo...
"Essa !@#%& vai ter q funcionar", diz o programador.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
daniel775
Profissional
Profissional


Registrado: Quinta-Feira, 17 de Janeiro de 2013
Mensagens: 721
Localização: Amparo SP

MensagemEnviada: Qui Mai 28, 2015 8:59 am    Assunto: Responder com Citação

Po cara é só criar os forms depois chamar Very Happy rsrsrs.

pode me ajudar em mais uma coisa?

como posso fazer um botão dentro de cada form PARA SAIR e sempre fechar o tabsheet atual?
_________________
"Água mole em pedra dura, tanto bate até q fura!", diz o filósofo...
"Essa !@#%& vai ter q funcionar", diz o programador.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Qui Mai 28, 2015 10:49 am    Assunto: Responder com Citação

vc testou a classe q te enviei? ela faz tudo sozinha

vc cria os formularios normalmente, mas nao deixa eles no autocreate

vc usa a funcao da classe q te passei q ela mesma se encarrega de criar o tabSheet, criar o formulario, colocar ele dentro do tabSheet e depois se encarrega de destruir tudo qdo fecha o tabSheet.
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qui Mai 28, 2015 10:53 am    Assunto: Responder com Citação

Além do mais, isto cria uma complexidade muito maior para o código, tornando o mesmo insuportável, além do que isto envolverá milhares e milhares de linhas de código.
Sistemas on demand são melhor soluçaõ, pois centralização de código somente cria dificuldades de programação, visto que se torna difícil a leitura do código e também a sua procura, além de ter de procurar o que faz parte de quê.



bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
daniel775
Profissional
Profissional


Registrado: Quinta-Feira, 17 de Janeiro de 2013
Mensagens: 721
Localização: Amparo SP

MensagemEnviada: Qui Mai 28, 2015 11:07 am    Assunto: Responder com Citação

puutz joemil, desculpe nao tinha reparado o link..

cara bem legal, principalmente esse de formularios abertos rsrs..

vou testar aqui e tentar desenvolver algo nele,

Obrigado por enquanto!
_________________
"Água mole em pedra dura, tanto bate até q fura!", diz o filósofo...
"Essa !@#%& vai ter q funcionar", diz o programador.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB