Aplicações TDI, alguém já usa?

Delphi

02/08/2006

Olá amigos, há algum tempo venho com a idéia de passar meu sistema de MDI pra TDI... para quem nao sabe o que é, é os forms em forma de Abas, PageControl e tals... no estilo Firefox.

Gostaria de saber se alguém aí usa, se acham melhor, ou pior, porque acham e etc... ou seja, uma discussão sobre o assunto, pois como eu disse comecei a mexer com TDI, porém os resultados nao estao me agradando, nao sei se é porque eu nao sei ou sei lá...

então vamos ao debate.. :d


[]s


Titanius

Titanius

Curtidas 0

Respostas

Andersongaucho

Andersongaucho

02/08/2006

Como você pensa em fazer para criar os forms em abas?


GOSTEI 0
Titanius

Titanius

02/08/2006

Bem, estou usando o mesmo esquema dito anteriormente no fowum aqui, e o Michael descreveu na revista ClubeDelphi do mes passado.

Tipo, crio o Form em runtime, e coloco o Parent dele como sendo um PagtControl... saca?

Porém o efeito não gstei muito... por alguns motivos:

1) quando o form, tem poucos controles, fica muito estranho, pois em TDI a Form, e o total da tela, ou seja, fica uma ´telona´ com poucos controles...
2) quando voce tem mais de um form aberto, ou seja, varia abas, quando se move entre uma aba e outra da um efeito de ´flicker´, acho que chama isso mesmo, ou seja, quando se muda, parece que a tela pisca, e fica um efeito muito feito...

Se alguem tiver outra forma de criar um form em Aba, me diga, pois esse que estou usando não estou achando bom...


[]s


GOSTEI 0
Andersongaucho

Andersongaucho

02/08/2006

Entendi. Vou fazer um teste aqui e ver os resultados.
Mas eu imaginei que sua ideia seria criar algo como um TFormTab e um TFormTabChild para isso. O primeiro seria um container para o segundo.
Ou talvez até já exista algo pronto como essa ideia.
Vou pesquisar na revista e aqui no forum pra ver os exemplos.

Um abraço
Anderson Gaúcho


GOSTEI 0
Paullsoftware

Paullsoftware

02/08/2006

Olá titanuis blz...

eu vi o exemplo/artigo do Michael na revista do mês passado, só que ainda não tive tempo de testá-lo, mais crio que é possível vc trabalhar de duas maneiras, tanto usando forms no modo [b:f8a9fced05]Child[/b:f8a9fced05] como [b:f8a9fced05]Normal[/b:f8a9fced05] então, teoricamente a aparencia da janelona sem controles, deve sumir se vc optar por criar essas janelas, como sendo uma [b:f8a9fced05]Dialog[/b:f8a9fced05], não concorda? afinal, as aplicações TDI vienheram para que vc possa usar os dois meios tanto [b:f8a9fced05]MDI[/b:f8a9fced05] como [b:f8a9fced05]SDI[/b:f8a9fced05] em uma única aplicação, quando ao efeito causado, a piscada que ele dá quando mudamos de um form pro outro pode ser resolvido, ainda não sei como, pois, não fiz nenhum teste ainda mais não usei programas que usam e não dam essa piscada, exemplo o NetScape, usa e não dá nenhuma piscada quando mudamos de aba... :wink:


GOSTEI 0
Titanius

Titanius

02/08/2006

Olá Paul,

Seguinte, realmente eu ví lá que se pode usar tanto TDI quanto SDI, mas a idéia do TDI, é você poder dar maior flexibilidade ao usuário, ou seja, você poder abrir vários cadastros de clientes ao mesmo tempo... mas eu criando o SDI pra Dialog em Forms ´pequenos´ eu de uma forma ou de outra, estaria indo contra o que o TDI diz, correto? Vamos imaginar meu caso, tenho um cadastro chmado Tipo de Clientes, onde nada mais é que uma Descrição... um DBEdit... se eu fizer um Dialog pra isso, deixo de usar os ´recursos´ do TDI...

quanto a ´piscada´, tentei de tudo quanto é forma... Update, Refresh, ProcessMessage... e nada... continua...

E vi outro ´problema´, quando se cria o Form, dependendo do Form, demora um pouco a aparecer na Aba... e se nesse meio tempo, você clicar num Menu por exemplo, ele simplesmente nao carrega o Form, ou seja, só será carregado quando você sair do Menu.. :roll:


Eu realmente gostei da idéia do TDI, mas ou eu não estou sabendo usar, ou ele é meio ruinzinho mesmo... :cry:


[]s


GOSTEI 0
Paullsoftware

Paullsoftware

02/08/2006

Entendo, aglumas dificuldades encontradas por vc não posso me manifestar, pois, tenho apenas teoria sobre o assunto, mais o Michael bem que podia dar um inclementada nesse seu Post para esclarecer nossas dúvidas, afinal, é um novidade e ainda não é usado por muita gente aqui do fórum... um abraço :wink:


GOSTEI 0
Sourcecode

Sourcecode

02/08/2006

quanto a ´piscada´, tentei de tudo quanto é forma... Update, Refresh, ProcessMessage... e nada... continua...


Tente criar o tabsheet primeiro e deixá-lo hide antes de definir o parent do formulário para o tabsheet. Depois dê um show no tabsheet... aqui funciona sem problemas.

E vi outro ´problema´, quando se cria o Form, dependendo do Form, demora um pouco a aparecer na Aba... e se nesse meio tempo, você clicar num Menu por exemplo, ele simplesmente nao carrega o Form, ou seja, só será carregado quando você sair do Menu.. :roll:


Isso acontece porque está tudo na mesma thread, na verdade um clique no menu interrompe qualquer processamento da VCL, o único jeito disso é usando um outro tipo de menu ou criando uma outra thread ... tenta usar a toolbar2000 ou se tiver uma grana pra investir, devexpress expressbars, ou ainda tmsbars...


GOSTEI 0
Titanius

Titanius

02/08/2006

SourceCode...

Quanto a piscada, ela dava quando se muda de um tabsheet pra outro... e não quando cria os Forms.


Acabei desistindo deste formato, pois achei complicado visualmente... um cadastro com 3 campos somente fica muito feio... muito espaço desperdiçado... :D


[]s


GOSTEI 0
Sourcecode

Sourcecode

02/08/2006

SourceCode... Quanto a piscada, ela dava quando se muda de um tabsheet pra outro... e não quando cria os Forms. Acabei desistindo deste formato, pois achei complicado visualmente... um cadastro com 3 campos somente fica muito feio... muito espaço desperdiçado... :D []s


Ah, foi mal, eu entendi errado, também querer ensinar um ´Borland Delphi2006 Developer Certified´ a criar formulário TDI, tou qurendo d+, rss. Aqui as piscadas eu não tenho problema, uso outro pagecontrol, se quiser conversar mais me procura no msn pra gente trocar umas idéias.

grande abraço.


GOSTEI 0
Vitor Rubio

Vitor Rubio

02/08/2006

Eu sei que você resolveu desistir, mas quem sabe se você colocar a propriedade doublebuffered para true? teste tanto no container como na form a ser criada. Talvez isso resolva a piscada.

outra coisa, pra resolver o problema do tamanho/espaço é quando você criar uma form, ou você seta a altura e largura do parent ou pagecontrol para o mesmo tamanho da form ativa ou você coloca ancoras na form que vai ser aberta e seta align = alclient em tempo de execução, para os controles esticarem e alargarem. é uma ideia. Com relação ao menu, você pode desabilita-lo antes de criar a form e habilita-lo depois da form já criada, ou usar threads para criar as forms.


GOSTEI 0
POSTAR