tamanho da form X resolução de tela

Delphi

08/07/2003

Olá pessoal, desenvolvi um software em Delphi 5, ele tem as dimensões de 740 x 560 pixéis, sendo assim ele adapta-se corretamente a uma resolução de tela 800 x 600 ou maior. O problema é quando o cliente tiver uma resolução de tela menor, de exemplo 640 x 480 em um monitor de 9 polegadas, a área da form principal reduz corretamente, o problema é que os dbedit´s que coloquei dentro, eles não se adaptam, e continuam do mesmo tamanho, ficando enormes vazando para fora da form. Existe uma maneira de utilizar algum tipo de código ou propriedade de componente que reduza automaticamente o tamanho dos componentes internos a partir da resolução de tela da máquina?


Slayer

Slayer

Curtidas 0

Respostas

Nildo

Nildo

08/07/2003

Voce vai ter que desenvolver seu proprio esquema. Aqui algumas dicas:
Screen.width -> Largura da tela
Screen.height -> Altura da tela

Compare: Se voce fez seu programa em 800 de largura, pegue o tamnho do Componente e diminua ele pela diferenca de tela entre a que vc fez (800) e a do cliente.
Faz isso em todos os componentes usando um:

var
i, escala: Integer;
begin
escala := Alguma escala proporcional;

for i:=0 to ComponentCount -1 do
if Components[i] is TControl then
(components[i] as TControl).width := (components[i] as TControl).width - ((800 - Screen.width) div escala)

Até aki eu fiz 50¬ do trabalho pra vc. Agora vc pode implementar e fazer o resto. Ps.: Se nao ober resultador almente o tamanho da escala cada vez mais.


GOSTEI 0
Slayer

Slayer

08/07/2003

Ok, entendi o seu esquema, mas eu vou precisar fazer isso com todos os componentes, certo? Acedito que isso vá dobrar o tamanho do meu executável, visto que existem mais de 1000 componentes no sistema... você acha viável, ou devo talvez proceder de outra maneira? Obrigado.


GOSTEI 0
Slayer

Slayer

08/07/2003

Ok, entendi o seu esquema, mas eu vou precisar fazer isso com todos os componentes, certo? Acedito que isso vá dobrar o tamanho do meu executável, visto que existem mais de 1000 componentes no sistema... você acha viável, ou devo talvez proceder de outra maneira? Obrigado.


GOSTEI 0
POSTAR