UMA CLASSE PARA DOIS FORMS
Tenho dois forms, teoricamente iguais, com algumas diferenças no layout, um para monitor quadrado e outro para wide. Sei que tem como adaptar os controles para que mudem automaticamente conforme a necessidade, so que isso foi o pedido de um cliente em potencial que praticamente me exigiu os dois forms, onde a posição dos controles de cada form para cada monitor é diferente, mais permanece os mesmos nomes, apenas a posição dos mesmo é alterada.
Então a duvida: Tem como criar uma classe e a partir dela gerenciar os dois forms, sem ter que ficar repetindo os mesmos códigos em cada um?
Eu acredito que tenha, so que estou um pouco perdido nesse sentido e estou precisando de um norteamento pra como seguir!
Obrigado
Sim, eu relutei um monte aqui para a criação do segundo form, so que quando và que não estava dando produtividade e precisava entregar o sistema pro cliente, então fiz essa POG, copiando e colando o form original adaptando os controles como o cliente pediu e colocando em produção, so que ja vejo que isso no futuro será trabalhoso ficar dando manutenção em dois forms, sendo que os códigos em cada um vai ser igual.
Por isso pensei em uma classe pra controlar os dois.
Citação::
Já que só muda a posição dos controles, por que não usa apenas um form e faça as mudanças dinamicamente?
Na verdade eu ate fiz isso, so que em alguns clientes com windows xp (sim windows XP mesmo, cliente não quer atualizar), tive problemas a tela ficava toda desconfigurada, sendo que em outras maquinas isso não acontece, por isso que optei momentaneamente com dois forms
Citação::
Chegou a conferir se o framework instalado estava na mesma versão?
sim, tudo igual!
Arrumaria o layout do form conforme o que o cliente quer, todas as propriedades de todos os controles. Serializaria todas essas propriedades e faria a leitura do XML quando o cliente fosse o que usa esse layout. Aliás, isso se aplica a todo e qualquer form, você ajeita os controles todos conforme o que o cliente quer, gera o XML com as propriedades de todos os controles e as lê quando o form é aberto. Isso até mesmo cria a possibilidade do próprio cliente alterar o posicionamento e tamanho do form e dos controles. Ao serializar, as propriedades que você não quer liberar pro cliente, são excluÃdas da classe e o mesmo na leitura, ler apenas as propriedades de estética de cada controle. Costumava fazer isso com os meus sistemas Desktop, agora como não faço mais desktop(já a quase uma década), não preciso mais disso, uso componentes web ainda mais versáteis.
Citação::
O que eu faria já que se trata de um form com layout mutável, e o que vou dizer se aplica APENAS quando as mudanças são APENAS no layout, eu faria assim:
Arrumaria o layout do form conforme o que o cliente quer, todas as propriedades de todos os controles. Serializaria todas essas propriedades e faria a leitura do XML quando o cliente fosse o que usa esse layout. Aliás, isso se aplica a todo e qualquer form, você ajeita os controles todos conforme o que o cliente quer, gera o XML com as propriedades de todos os controles e as lê quando o form é aberto. Isso até mesmo cria a possibilidade do próprio cliente alterar o posicionamento e tamanho do form e dos controles. Ao serializar, as propriedades que você não quer liberar pro cliente, são excluÃdas da classe e o mesmo na leitura, ler apenas as propriedades de estética de cada controle. Costumava fazer isso com os meus sistemas Desktop, agora como não faço mais desktop(já a quase uma década), não preciso mais disso, uso componentes web ainda mais versáteis.
Entendi... mais agora surgiu outra dúvida: então é melhor salvar o layout do form em um arquivo a parte, carregar esse layout a cada execução do programa, do que ter uma classe para controlar dois forms com layouts diferentes?
Citação:Entendi... mais agora surgiu outra dúvida: então é melhor salvar o layout do form em um arquivo a parte, carregar esse layout a cada execução do programa, do que ter uma classe para controlar dois forms com layouts diferentes?
Veja bem: O form em si já é uma classe. Você simplesmente manipular posicionamento de controles é muito mais simples do que ter que dar manutenção em dois forms diferentes, mesmo que a classe CRUD deles seja a mesma. é o caminho de menor resistência e, na minha visão, o mais óbvio. A mudança de layout é muito mais simples de administrar do que dois forms separados. O cliente, sequer vai notar essa diferença e você ainda cria precedente para fazer o mesmo em outros forms.
www.portugal-a-programar.pt/topic/62248-ajustar-form-a-tela/