Fórum O eterno problema da diferença de resolução de vídeo #351640

10/01/2008

0

Estou concluindo meu primeiro sistema em D7 e estou enfrentando um problema monstruoso com a diferença de resolução de vídeo.

Desenvolvo em 1280 x 1024 e meu cliente usa 1024 x 768. Meus lindos
formulários ficaram gigantes (como não poderia deixar de ser) nesta
resolução.
Já pesquisei, ví muitas ´soluções´, testei-as, mas nada funcionou.

Pergunto, o que fazem vocês no desenvolvimento? Utilizam uma resolução mas comum, digamos padrão (1024x768) e deixam os formulários com tamanho satisfatório nesta resolução ou há alguma forma melhor de tratar este problema?


Luciano.badoe

Luciano.badoe

Responder

Posts

10/01/2008

Delphijean

Meu caro, eu particulamente desenvolvo em 1024 x 768 mas tenhos clientes que tem a tela 800x600 ou 1280x1024 que o inverso do seu caso. então minha solução foi, desenvolver num tamnho que atenda a todos e como coloco meus componentes sempre dentro de um Panel por exemplo dai eu simplismente centralizo o Panel para que a tela não fique despropossional mesmo que resolução seja a mais improvavel, mantando claro a resolução minima de 800x600.


Responder

Gostei + 0

10/01/2008

Facc

Tbm tenho o mesmo problema... até achei algumas soluções no forum, mas não sei se usei certo ou elas não funcionam.

Alguem teria uma solução definitiva para isso? Pois não quero ter que usar a mesma resolução dos meus clientes, ou seja meu programa que teria que se adaptar as várias resoluções (800x600, 1024 x 768, 1280 x 1024)


Responder

Gostei + 0

10/01/2008

Edilcimar

troque a resolução do vídeo na inicialização do programa


Responder

Gostei + 0

10/01/2008

Facc

troque a resolução do vídeo na inicialização do programa


e como fazer isso?


Responder

Gostei + 0

10/01/2008

Onjahyr

troque a resolução do vídeo na inicialização do programa


Não é uma opção boa, nenhum programador (ética profissional) pode manipular o computador dos outros, isso é uma regra básica. Configurações do computador devem ser alteradas pelo próprio usuário e não atravez dos nossos programas.
Qdo eu pego um programa que mexe nas minhas configurações eu desinstalo ele logo!

E mais, a resolução pode não ser adequada as configurações do hardware dele e fazer com que o Monitor seja danificado permanentemente. Quem usa Linux sabe do que estou falando! Resolução de vídeo é coisa séria. No WIndows, nas configurações mostra exatamente as opções válidas e não deixa que o usuário coloque uma que não suporta. No Linux tem como fazer isso mas fica a critério de cada um.


Responder

Gostei + 0

10/01/2008

Delphijean

Concordo plenamente com o [b:b728dafc7d]onjahyr[/b:b728dafc7d] manipular configuração e comportamento do computador do cliente não é uma prática legal, se você não tem solução nenhuma o que vc pode fazer é colocar uma Label numa área visivel do seu sistema indicando qual a resolução indicada para o sistema tipo:

[color=red:b728dafc7d]Resolução Indicada: 1024 x 768[/color:b728dafc7d]

==Uma Saída Basíca======================
Você pode ver quanto porcento cada um dos seus componentes representam do tamanho do seu form na resolução que você usa e dai na abertura de cada tela indicar o tamanho do componente por percentual incusive do proprio form dai ele irá assumir um tamanho esteticamente correto pra cada resolução a ser usada.
[b:b728dafc7d][color=red:b728dafc7d]Dá um certo trabalho mas, funciona.[/color:b728dafc7d][/b:b728dafc7d]


Responder

Gostei + 0

10/01/2008

Luciano.badoe

[b:ab13c4e008]delphijean[/b:ab13c4e008]
Você pode ver quanto porcento cada um dos seus componentes representam do tamanho do seu form na resolução que você usa e dai na abertura de cada tela indicar o tamanho do componente por percentual incusive do proprio form dai ele irá assumir um tamanho esteticamente correto pra cada resolução a ser usada.


Como fazer isso?


Responder

Gostei + 0

10/01/2008

Delphijean

vai um exemplo:
vc tem uam tela com as seguinte medidas
[b:c3bd8e6eae]W[/b:c3bd8e6eae]idth: 200 [b:c3bd8e6eae]H[/b:c3bd8e6eae]eight: XXXX

e dois Edits um com W: 60 outro com W: 140 então,
o Primeiro tem um W: de 30¬ da tela e o segundo Wde 70¬ da tela;

dai no evento onShow do Form vc diz que:

procedure formShow...
begin
 Edit1.Width := Round((Self.Width * 30) / 100);
 Edit2.Width := Round((Self.Width * 70) / 100);
end;


veja que o [b:c3bd8e6eae]Round()[/b:c3bd8e6eae] é usado porque os propriedades Width não aceita numeros flutuantes...

agora basta vc adaptar ao que vc quer.


Responder

Gostei + 0

11/01/2008

Luciano.badoe

[b:0c6c7bb283]delphijean[/b:0c6c7bb283]
Obrigado pelo exemplo.
Mas sobre o próprío form, digamos que ele está legal em 1280 x 1024 e desejamos adaptá-lo para 1024 x 768, neste caso vc aplica um valor de redução para o mesmo?

Valeu.


Responder

Gostei + 0

11/01/2008

Delphijean

Meu caro se você passar o percentual das propriedades Width e/ou Height dos objetos quando a sua resolução de tela for igual a 1280 x 1024 quando, sua resolução de tela for igual a 1024 x 768 jpa estrá tudo pronto. tipo:

em 1280 x 1024 o objeto Edit1.Width é igual a 100 que representa 10¬ do width do form quando estiver em 1024x768 o Edit1.Width é igual a 85 porém o percentual é o mesmo 10¬.

esperero que tenha entendido;


Responder

Gostei + 0

11/01/2008

Delphijean

veja esta materia:

http://www.guiadodelphi.com.br/ler.php?codigo=350

att,


Responder

Gostei + 0

11/01/2008

Luciano.badoe

[b:8a71c64b6d]delphijean[/b:8a71c64b6d]
Desculpe, me expressei mal.
Nas verdade me referia diretamente ao objeto do formulário.
Sabendo que o edit1 representa 10¬ do form, sei que vou manter este padrão, mas e o form. Como ter idéia do percentual?


Responder

Gostei + 0

11/01/2008

Edilcimar

Você não vai trocar a definição definitivamente, apenas para uso do seu programa, se você olhar os jogos fazem isto, trocam a resolução para um determinado padrão e ao sair voltam a definição anterior
vc pode fazer 2 coisas
1)
If (Screen.Width < 800) or (Screen.Height < 600) then
Begin
ShowMessage(´A CONFIGURAÇAO MÍNIMA DA TELA É 800x600 PIXELS´ + #13 + 10 + ´A configuração atual está ´ + IntToStr(Screen.Width) + ´x´ +
IntToStr(Screen.Height));
Application.Terminate;
End

2)
DevMode.dmPelsWidth := 800;
DevMode.dmPelsHeight := 600;
neste caso salve a definição anterior em 2 variáveis para ao terminar o programa redefiní-la como estava


Responder

Gostei + 0

11/01/2008

Delphijean

Pois é como havia dito antes
veja esta matéria: http://www.guiadodelphi.com.br/ler.php?codigo=350
observer o que ele faz com o width e height do form, além do ScaleBy();

att,


Responder

Gostei + 0

17/01/2008

Cacau

Eu faço uso das propriedades Align e Anchors!
É fácil e em vc pode testar em tempo de projeto, além de que os clientes que possuem uma resolução maior se beneficiam com o aproveitamento da tela.


Responder

Gostei + 0

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

Aceitar