Fórum MDI x SDI (era: O que recomendam) #323808

20/06/2006

0

Gostaria de saber a opiniao dos amigos, em relacao a maneira de desenvolver sistemas, utilizando FormStyle normal ou MDI, acredito que MDI dá uma maior flexibilidade ao usuario, ja que tera acesso a varias janelas ao mesmo tempo, ja que os forms normais terao de ser fechados para a abertura de outros, mas vejo nos forms MDI um problema que ainda nao achei uma solucao, que é no caso de usar os componentes de acesso a dados (dbexpress no meu caso) no datamodule, pois no caso de MDI teriam que estar no form, qual modelo vcs utilizam, existem outras vantagens de desvantagens nesses modelos ou existem outras formas, eu gostaria de dar ao usuario a flexibilidade de estar com varias janelas abertas ao mesmo tempo, mas tb nao gostaria de perder a facilidade de centralizar os componentes de acesso no datamodule.

Abs a Todos e obrigado.


Felipeiw

Felipeiw

Responder

Posts

22/06/2006

Andreaskaquino

Caro colega, com relação a localização dos componentes de acesso a dados este podem ser colocados em qualquer form seja este um form MDI, SDI ou um datamodule, o fato de voce trabalhar com forms MDI não o obriga a colocar os componentes de acesso aos dados dentro do form que voce esta trabalhando.

Quanto a forma de criar o projeto tudo vai depender da aplicabilidade do programa, lembrando que quando voce usa o SDI deverá tomar alguns cuidados especiais no sentido de verificar se determinadas janelas poderão ser abertas mais de uma vez, alias esta verificação tambem teria que ser feita no caso de se desenvolver MDI com forms não modais, mas no meu modo de ver tudo depende de qual resultado final se deseja obter.

Atenciosamente,


Responder

Gostei + 0

22/06/2006

Paullsoftware

Olá bom dia amigo, não vejo problema algum em usar Forms SDI ou MID devemos lembrar que vc pode trabalhar sem problemas com forms normais para isso basta vc utilizar o Show ao invés do ShowModal e poderá sim, ter acesso a outras janelas do seu aplicativo sem problemas, porém o MID é mais flexivel como vc mesmo já mencionou, por outro lado o MID deixa a sua aplicação com Cara de windows 98...
Quando a organização dos seus componentes de acesso a dados, pode ficar tranquilo em usá-los dentro de um DataModule, afinal ele existe é pra isso mesmo, independente da aplicação em questão sempre usei DataModule para organizar os componentes no meu caso: SQLConnection, SQLDataSet, DataSetProvider, ClientDataSet´s e algums DataSources (particularmente, prefico colocá-los no form em questão), mais nas minhas aplicações sempre trabalhei com dois DM um para Cadastros e outro para consultas assim não acumulo muitos componentes em um único lugar, sem contar na hora de abrir a aplicação não fica tão pesada para abrir...


Responder

Gostei + 0

22/06/2006

Michael

Olá!

Existe um terceiro modelo de interface gráfica chamado [b:4605b3734b]TDI - Tabbed Document Interface[/b:4605b3734b] - que vem ganhando muito espaço entre as aplicações de grandes empresas, como Microsoft, Mozilla, etc. Este modelo diz que a exibição dos forms é baseada em abas. Desta forma, alia-se os conceitos dos modelos MDI e SDI em um (alguns, não todos).

Eu produzi um artigo para a revista ClubeDelphi exatamente sobre interfaces TDI, e deve sair na próxima edição. Se quiser dar uma olhada, na Wikipedia há um artigo sobre o assunto. http://en.wikipedia.org/wiki/Tabbed_document_interface

[]´s


Responder

Gostei + 0

22/06/2006

Paullsoftware

Interessante Michael, agora estou na espectativa de que chegue logo essa edição... nã conheço esse meio dei uma rápida lida e achei bem interessante até hoje sempre usei um ou outro nunca os dois, mais já tive a necessidade de usá-los juntos e tive algumas dificuldades, um abraço.. :wink:


Responder

Gostei + 0

22/06/2006

Felipeiw

Galera, muitissimo obrigado por me responderem, mas meu maior problema é o seguinte, vejam bem, se eu utilizar mdi e os componentes de acesso em um datamodule, o que vai acontecer, se o usuario abrir o cadastro de clientes minimizar e abrir o controle de pedidos este cliente vai estar no dbedits pois o clientdataset é o mesmo, se eu escolher outro cliente no pedido aquele que estava no cadastro de cliente ja era, pois do mesmo modo o clientdataset é o mesmo, como resolvo isso?
Abs


Responder

Gostei + 0

22/06/2006

Felipeiw

Galera, muitissimo obrigado por me responderem, mas meu maior problema é o seguinte, vejam bem, se eu utilizar mdi e os componentes de acesso em um datamodule, o que vai acontecer, se o usuario abrir o cadastro de clientes minimizar e abrir o controle de pedidos este cliente vai estar no dbedits pois o clientdataset é o mesmo, se eu escolher outro cliente no pedido aquele que estava no cadastro de cliente ja era, pois do mesmo modo o clientdataset é o mesmo, como resolvo isso?
Resumindo, nao quero colocar em cada form os componentes de acesso a dados quero continuar organizando eles nos varios dms que meu sistema possui, porem quero dar a flexibilidade ao usuario de abrir o form de cadastro de fornecedores ou mesmo de clientes enquanto esta digitando um orcamento por exemplo, vcs nao acham bom isso?
Abs


Responder

Gostei + 0

22/06/2006

Eliasexner

olá pessoal

Também já me deparei com este problema e obtei por desenvolver
o sistema, criando um datamodulo por tela de cadastro.

Paguei este preço por querer dar mobilidade ao sistema. Eu poderia ter
colocado os componentes nos forms, porém para ter a coisa mais organizadas, obtei
por este metodo.

Sempre quiz saber se existe uma outra maneira de se organizar este problema. Mas até
hj não encontrei melhor solução.


Responder

Gostei + 0

22/06/2006

Felipeiw

Posso ate estar falando uma bobagem mas nao existe uma forma de criar novas instancias do DM para cada formulario aberto? Uma coisa é certa nao havera possibilidade de abrir o mesmo form ao mesmo tempo.
Abs


Responder

Gostei + 0

23/06/2006

Eliasexner

Olá Felipe

Se é possível criar uma instancia de um DM de modo que ele seja usado por dois forms diferentes sem que a utilização dos componentes de dados (clientdataset etc) seja afetado no outro quando manipulado no primeiro, eu não conheço, e gostaria muito que alguém me ensinasse.

Quanto a abrir o mesmo form ao mesmo tempo na mesma execução do sistema (mesmo usuário/sessao ??) Acho que não entedi bem o que vc quis dizer...

Eu resolvi o problema acima criando um Datamodulo por form, pq estava com o mesmo problema que vc. Assim eu posso manipular dados da mesma tabela em forms diferentes, sem que haja problemas. A única questão é referente à edição de um mesmo registro. Mas isso é outro assunto.

Realmente eu não conheço outra maneira de resolver este problema. Se alguém do Forum souber peço que poste aqui pois será muito útil para o nosso trabalho.


Responder

Gostei + 0

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

Aceitar