Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Abrir formulario em abas


robinhocne

Pergunta

Bom dia pessoa,

Como faço para abrir formulario em abas no delphi...

Quero ter um formulário com todos os campos e procedimentos lá dentro....então pelo menu da tela principal quero chamar aquela tela e ele abrir na tela principal em aba, ai se eu chamar

outra tela irá abrir outra aba...tipos o mozila, chrome e ie.

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Jhonas creio que não entendeu....

tenho um formulário padrão....desse formulário padrão crio os meus forms e abro normalmente pelo showmodal....mas estou querendo mudar para TDI a minha aplicação, como vou pegar um formulário e abrir como aba em um page control ?

Link para o comentário
Compartilhar em outros sites

  • 0

consegui um exemplo na internet e cheguei nesse ponto, mas estou com alguns problemas...

procedure TfrmPlatinum.Button4Click(Sender: TObject);
var
aForm : TfrmCadUsuarios;
tabSheet : TTabSheet;
begin
//Create a new tab sheet
tabSheet := TTabSheet.Create(PageControl1) ;
tabSheet.PageControl := PageControl1;
//create a form
aForm := TfrmCadUsuarios.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;
mas agora, como vou fechar esse tab ?
queria colocar um icone de fechar na aba e ai quando clicar nele tem que fechar esse form...
quando eu chamo esse form, ao fechar o sistema ele dá erro.... alguma coisa que tenho que destruir ao fechar a aplicação principal ?
ou tenho que fechar a aba antes de fechar o sistema ?, seria o mais certo mesmo, porque ai o usuário será obrigado olha na aba se ele não deixou algo sem salvar.
Link para o comentário
Compartilhar em outros sites

  • 0

consegui um exemplo na internet e cheguei nesse ponto, mas estou com alguns problemas...

procedure TfrmPlatinum.Button4Click(Sender: TObject);
var
aForm : TfrmCadUsuarios;
tabSheet : TTabSheet;
begin
//Create a new tab sheet
tabSheet := TTabSheet.Create(PageControl1) ;
tabSheet.PageControl := PageControl1;
//create a form
aForm := TfrmCadUsuarios.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;
mas agora, como vou fechar esse tab ?
queria colocar um icone de fechar na aba e ai quando clicar nele tem que fechar esse form...
quando eu chamo esse form, ao fechar o sistema ele dá erro.... alguma coisa que tenho que destruir ao fechar a aplicação principal ?
ou tenho que fechar a aba antes de fechar o sistema ?, seria o mais certo mesmo, porque ai o usuário será obrigado olha na aba se ele não deixou algo sem salvar.

Colega,

Fiz o teste usando este código que você escreveu não deu nenhum erro ao fechar o programa. Será que o erro que ta dando no seu é realmente relacionando a isto? Qual o erro que ta dando? posta ai. Vlw!

Link para o comentário
Compartilhar em outros sites

  • 0

bem, como voce pode perceber, voce acabou usando o pagecontrol ...certo ?

mas agora, como vou fechar esse tab ?

veja que a cada clique do botão voce vair criar um novo tabSheet.. então para fechar na sequencia clicando em outro botão seria

PageControl1.ActivePage.PageControl.Pages[0].Destroy;

OBS: a fechar o ultimo tabSheet voce deve desabilitar o botão, senão ocorrerá um erro

mas faça alguns testes ai

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
PageControl1: TPageControl;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
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;

procedure TForm1.Button2Click(Sender: TObject);
var tabSheet : TTabSheet;
begin
PageControl1.ActivePage.PageControl.Pages[0].Destroy;
end;

end.

OBS: se quiser fechar um TabSheet especifico, basta colocar o indice desse TabSheet

exemplo:

PageControl1.ActivePage.PageControl.Pages[2].Destroy;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Já sei o porque do erro....

eu uso na aplicação o VCLSkin, mas quando eu abro essa tela no pagecontrol ele não abre com o skin, então coloquei na tela o componente do skin para fixar o skin na tela, mas primeiro que não deu certo e segundo que acontecia esse erro...

então tirei da tela o skin e só deixei no form principal ai funcionou....porém quando abro a tela ela abre sem o skin, como faço para essa tela ficar com o skin corretamente do vclskin que está no form principal.

Link para o comentário
Compartilhar em outros sites

  • 0

a versão do SkinData que uso é o 4.81.04.30

na propriedade do SkinFile voce coloca o nome do arquivo skn que quer usar nos forms

na propriedade Active voce ativa o skin para que apareça nos forms

e na propriedade SkinFormType voce deixa como sfDLL para que não ocorra erro quando voce fechar a aplicação

OBS: no codigo que usei para teste ( post acima ) o skin aparece normalmente quando voce cria um TabSheet

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...