Instalação de Pacotes via OPM: TDINotebook


Um jeito diferente de ao invés de abrir janelas modais(SDI) ou multiplos documentos(MDI) é abrir usando tabs, método conhecido como TDI. A Interface TDI geralmente é usada de dois modos: (1) com varias tabs, similar ao Google Chrome ou Firefox onde cada tab representa uma janela diferente e independente e o TDINotebook já vem pronto para usar de modo, para quem estava acostumado com a interface MDI talvez este método seja o mais aproximado ou (2) manter uma unica tab com a "orelhinha" invisivel e fazer forms serem embutidos dentro delas e então com as "orelhinhas" invisiveis podemos trocar de tab onde cada uma delas (ou apenas uma) terá seu próprio form.

O vídeo abaixo mostra o que é uma interface TDI e como instalar o componente TDINotebook:

Repare que o aplicativo esta sempre se aproveitando da janela principal ao inves de criar uma nova janela sobre esta.

Você pode usar método similar a opção #2 através da criação de um form dentro de um panel ou PageControl, mas se o fizer deverá lembrar-se também de destruí-lo manualmente e é aí que o TDINotebook ajuda, pois ao fechar uma tab o que estiver dentro dela(um form) será destruido também. Também haverá menos código quando precisar retornar a uma janela anterior.

Inclusive os aplicativos mobile usam este conceito de tabs, mas nenhum aplicativo se parece com o Google Chrome ou Firefox porque apenas uma única tab fica visivel e a mesma é chaveada entre os forms, mostrando apenas um form por vez.

Se você gostou dessa abordagem então instale este componente.

Maiores informações em:
TTDINotebook - Lazarus wiki (freepascal.org)

Escrevi uma demo onde você poderá ver na prática a simpicidade de criar programas dessa forma:
Demo usando TTDINotebook

Basicamente, você inclui o componente TDINotebook na sua janela principal e para o aplicativo não ter a cara de navegador Gooogle Chrome ou Firefox, você inclui essas linhas no OnCreate do seu form principal:

O codigo acima é para ser didático, você pode acrescentar muito mais.

Ainda ficou com duvida? Assista ao vídeo de como criar uma aplicação TDI, ao estilo "mãos na massa":

>

Claro que usar o componente TDINotebook pode facilitar a criação de uma aplicação TDI, porém não é o único meio de fazê-lo, podemos criar uma aplicação TDI usando o componente TPageControl. Como? Veja o vídeo a seguir onde demonstro como fazê-lo: