Fórum Abrir form em aba (TDI) #470378
18/02/2014
0
pessoal estou querendo abrir meus formulários em abas de um page control, estou tentando desde ontem, achei alguns exemplos, mas até agora sem sucesso....cheguei até esse código abaixo onde eu abro o formulário na aba do page control....mas....:
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.
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.
Robson Morais
Curtir tópico
+ 0
Responder
Post mais votado
21/02/2014
resolvi assim:
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.Robson Morais
Responder
Gostei + 1
Mais Posts
19/02/2014
Ricardo Araujo
bom dia amigo,
usa este código que funcionar:
procedure TForm1.fechar1Click(Sender: TObject);
var
tab : TTabSheet;
begin
tab := PageControl1.ActivePage;
if Assigned(tab) then
begin
tab.Parent := nil;
tab.PageControl := nil;
FreeAndNil(tab);
end;
end;
usa este código que funcionar:
procedure TForm1.fechar1Click(Sender: TObject);
var
tab : TTabSheet;
begin
tab := PageControl1.ActivePage;
if Assigned(tab) then
begin
tab.Parent := nil;
tab.PageControl := nil;
FreeAndNil(tab);
end;
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)