Fórum Como abrir forms em formato pagecontrol? Um vídeo de exemplo #606792

28/11/2019

0

Olá bom dia a todos, dando continuidade no meu projeto, estou procurando na internet, algum exemplo de como se faz isso, ou se alguém puder me ajudar, dando uma dica. O que preciso que meu software abra os forms igual ao que está neste vídeo, ou seria em pagecontrol ou tab,
Valeu a todos.
https://www.youtube.com/watch?v=WialT0IeDP8
Júnior Pinheiro

Júnior Pinheiro

Responder

Posts

28/11/2019

Emerson Nascimento

coloque no seu form principal um pagecontrol alinhado alClient.

implemente a procedure abaixo no form principal:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TFormPrincipal.AbreForm(Formulario: TComponentClass; PageControl: TPageControl = nil);
var
  TabSheet: TTabSheet;
  Form: TComponent;
begin
  // cria o formulário
  Form := Formulario.Create(Self);
  if PageControl <> nil then
  begin
    TForm(Form).BorderStyle := bsNone; // retira as bordas
    // cria a 'pagina'
    TabSheet := TTabSheet.Create(Self);
    TabSheet.Caption := TForm(Form).Caption;
    TabSheet.PageControl := PageControl1;
    // exibe o formulário
    TForm(Form).Align := alClient;
    TForm(Form).Parent := TabSheet;
  end;
  TForm(Form).Show;
end;

Daí, quando você for criar o formulário, poderá fazer de duas formas:
1
2
AbreForm(TFormCadastro1, PageControl1); // abre o formulário dentro da pagecontrol
AbreForm(TFormCadastro1); // abre o formulário da forma comum

Crie uma rotina para fechar os formulários:
1
2
3
4
5
6
7
8
9
procedure FechaForm(Formulario: TForm);
var
  Parente: TWinControl;
begin
  Parente := Formulario.Parent;
  FreeAndNil(Formulario);
  if (Parente <> nil) and (Parente is TTabSheet) then
    FreeAndNil(Parente);
end;

E, onde você for fechar, chame a procedure:
1
FechaForm(Self);

Falta implementar o 'X' na aba da tabsheet.

Responder

Gostei + 0

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

Aceitar