GARANTIR DESCONTO

Fórum Destruir uma tabsheet que foi criada em tempo de execução #357819

30/04/2008

0

Bom dia.
Criei uma rotina para que meus forms sejam abertos em ‘Tabsheet ‘ em tempo de execução.
A rotina pra criação é essa ela eu vi em uma aula de Guinther pauli.
https://www.devmedia.com.br/articles/viewcomp.asp?comp=4520&;hl=*tabsheet*

private
procedure addtab(aform:TForm);
{ Private declarations }
Logo após a declaro

procedure Tfrm_menu.addtab(aform: TForm);
var
t: TTabSheet;
begin
t:= TTabSheet.Create(PageControl1);
t.PageControl := PageControl1;
t.Caption:= aform.Caption;
aform.BorderStyle:= bsNone;
aform.Align:= alClient;
aform.Parent := t;
aform.Show;

Após isso é só colocar em um button o form que você que abrir
addtab(frm_clientes);
Pronto vai ser criado tabsheet e dentro dela seu form.
Minha duvida é como destruir o Tabsheet criado?

Tentei isso,
var Tab: TTabSheet;
begin
Tab := PageControl1.ActivePage;

if Assigned(Tab) then
begin
Tab.Parent := nil;
Tab.PageControl := nil;

FreeAndNil(Tab);
end;
end;

Destrói mais da um erro ao tenta abrir o form outra vez.


Achilles

Achilles

Responder

Posts

30/04/2008

Rodc

Você destruiu o TAb e não avisou o form que o Tab não existe mais. Você precisa fazer o contrário do que foi feito na função que mostra o form no tab:

frm_clientes.BorderStyle:= bsNone;
frm_clientes.Align:= alNone;
frm_clientes.Parent := nil;


Responder

Gostei + 0

30/04/2008

Achilles

Amigo muito obrigado vc ta certo.
deu certo agora criar outro quando destruo, só que as tabsheet ficam maximizadas não é isso que eu queria não queria que elas ficassem como
o internet explorer 7 como os itens acima para que o susario possa chamar uma tabsheet e ter acesso a varios forms ao mesmo tempo.
vc tem alguma dica sobre isso?


Responder

Gostei + 0

30/04/2008

Rodc

Você precisa fechar o formulário antes de dizer que ele não tem Parent.
frm_clientes.Close;

Sugiro também utilizar Frames (TFrame) ao invés de Formulário (TForm). Pois se nenhuma das telas serão exibidas sem estar dentro do PageControl, não precisa de todas as funcionalidades de um Formulário.


Responder

Gostei + 0

30/04/2008

Achilles

Fiz amigo mais ainda estar dando o famoso erro de access Violation.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar