Fórum dilema resolução 1024x768 para 800x600 #319298

17/04/2006

0

olá caros programadores
sei que esse assunto já foi muito debatido mas....

alguém sabe uma forma funcional e eficiente p/ sistemas desenvolvidos em resolução 1024x768

tentei de tudo nada deu resultado aceitavel

a questão é?

como fazer um sistema em 1024 aproveitando totalmente o espaço do form e caso alguém use ele em 800 não perca componentes com a redução.

está foras de questão eu obrigar todos os clientes usarem todos os pc 1024 pois é meu software que se adpata ao cliente não o contrário.

fazer um sistema que ajuste a resolução tem duas falhas
1º se a placa não suportar
2º caso o sistema seja interrompido como voltar a configuração original

fazer o sistem em 800 x 600 ai quando alguem for usar em 1024 o que acontece ? o mesmo problema so que o inverso.

então amogos eu pergunto. O QUE FAZER?


Crcam

Crcam

Responder

Posts

17/04/2006

Rodc

ScaleBy(Screen->Width, 1024);


Talvez você tenha que ajustar uma ou outra coisa nos componentes após rodar o código acima.
Poste aqui depois falando se funcionou.


Responder

Gostei + 0

17/04/2006

Crcam

não entendi seu raciocínio.

o esse codigo faz ?


Responder

Gostei + 0

17/04/2006

Crcam

vc fala fazer no ative

ScaleBy(Width, 1024);


isso????


Responder

Gostei + 0

17/04/2006

Rodc

Opa, foi mal, este é o código em C++. Rss....
Form1.ScaleBy(Screen.Width, 1024);

Este código ajusta a propriedade Width, Height e Font.Size dos componentes que estão no Form. Execute o código no OnCreate do Form.
Os parâmetros são a relação da mudança.
ScaleBy(Tamanho_desejado, tamanho atual);
Screen.Width traz a largura da resolução do vídeo, no caso 800, e 1024 é a resolução que os componentes estão.


Responder

Gostei + 0

17/04/2006

Crcam

vou fazer um demo e testar
vc sabe se tem componente que ele não ajusta e se funciona em form pai e form filho


Responder

Gostei + 0

17/04/2006

Rodc

Não sei se funciona automaticamente em forumlário filho, mas é só rodar este código no filho que funcionaria.
Eu uso componentes de terceiros e alguns a propriedade Font se chama DefaultFont, neste caso, tenho que rodar o código abaixo para ajustar.

for i= ComponentCount - 1 downto 0 do
        begin
            if Components[i] is TbsSkinComboBox then
                (TbsSkinComboBox(Components[i]).DefaultFont.Size := MulDiv(TbsSkinComboBox(Components[i]).DefaultFont.Size, Screen.Width, 1024);
        end;



Responder

Gostei + 0

17/04/2006

Titanius

Amigos, me interessou esta discussão, tenho só uma pergunta... eu coloquei o codigo no Form principal, ok.. nao senti diferença ainda pois nao mudei minha resolução.. mas eu fui e coloquei nos Forms Filhos, e deu erro de memoria... eu devo colocar isso em um unico form, e ele herda para todos?


[]s


Responder

Gostei + 0

17/04/2006

Rodc

Quando você dizem Form filho estão falando de aplicação MDI, certo?
Se for apenas formulários, onde um form principal chama outro, não é para acontecer erro. Em aplicação MDI eu nunca tentei.


Responder

Gostei + 0

17/04/2006

Crcam

nota 10 para vc!!!!!!!!!!!


em uma linha vc resolver o tormento de resolução eu fiz um demo testei de todas forma nas duas configurações ficou muito bom....


para os colegas que estão lendo esse topico se quiserem o dmeo até eu colocar no meu site mande um e-mail ou um mp eu mando o demo que testa a maior parte dos componentes e forma de aplicar eles.


Responder

Gostei + 0

17/04/2006

Titanius

Quando você dizem Form filho estão falando de aplicação MDI, certo? Se for apenas formulários, onde um form principal chama outro, não é para acontecer erro. Em aplicação MDI eu nunca tentei.


MAs tipo... se eu colocar somente no principal, funciona pra todas as mdi_child? pois coloquei o mesmo codigo nas child e deu violacao de memoria... :(

[]s


Responder

Gostei + 0

17/04/2006

Rodc

Implementei no exemplo de aplicação MDI que vem com o Delphi e funcionou normalmente. Mas tive de colocar um código na tela principal e outro na tela Child. Faça um novo projeto e compare entre seus dois aplicativos para ver o que pode estar acontecendo.


Responder

Gostei + 0

17/04/2006

Titanius

Implementei no exemplo de aplicação MDI que vem com o Delphi e funcionou normalmente. Mas tive de colocar um código na tela principal e outro na tela Child. Faça um novo projeto e compare entre seus dois aplicativos para ver o que pode estar acontecendo.


aqui deu o mesmo erro... vc coloca este codigo onde? no oncreate?


[]s


Responder

Gostei + 0

17/04/2006

Titanius

Fucionou.. fechei e abri novamente o delphi e funcionou... ele funciona perfeitamente, mas nao para os controles (button, list e etc..).. :(


Existe algo para isso...?

[]s


Responder

Gostei + 0

17/04/2006

Leox

Uma outra solução que estou testando é usar o componente TFlowPanel que vem no Delphi 2006, como ele quando vc muda de resolução ou redimensiona o form os controles que estão ele são ajustados automaticamente, vale a pena testar...


Responder

Gostei + 0

18/04/2006

Crcam

eu fiz um demo que funciona legal e já implementeni em uns projetos até agora não deu erro se quiser eu envio o demo...

quais componentes que vc falou que não sou não dava eu coloco nesse temo e testo
eu testei até com gif e ficou legal


Responder

Gostei + 0

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

Aceitar