REDIMENSIONAR CONTAINERS

USUARIO.EXCLUIDOS 16/04/2004 16:53:26
#21008
Pessoal, gostaria de saber como faço para redimensionar um SSTab e um PictureBox quando o formulário for redimensionado pelo usuário.
Sempre que o form é modificado ele dispara o evento Resize, mas acontece que o .Heigth e .With do SSTab é de tamanho diferente do form (pelo que deu a entender), ou seja, um é medido em Twips e o outro em qualquer outra coisa, mas só sei que consegui redimensioná-lo de jeito nenhum.
Se algum puder me ajudar, fico grato!
Milton
Jaú-SP
USUARIO.EXCLUIDOS 16/04/2004 17:37:10
#21022
Resposta escolhida
Hummmm.... A questão é manter as proporções, correto? Então não se trata apenas de duas medidas (largura e altura), mas sim, de quatro pontos de referência: Left, Top, Right e Botton.
Você precisa manter as proporções desses pontos em relação ao container. Por exemplo, se no estado "normal" o Left é 1/18 do container, deve ser mantido como 1/18 do container qualquer que seja o tamanho do container.
Calculados o Left e o Right, a diferença entre eles é o seu Width. O mesmo se dá para o outro par de valores.
P.S.: Estamos falando sempre em termos relativos ao Form, não ao ScaleMode dos demais objetos.
USUARIO.EXCLUIDOS 18/04/2004 21:13:33
#21237
Certo, FLAVIO PAGANINI e o mesmo é válido para outros containers, como os PictureBox. Só que então caímos no problema relacionado ao ScaleMode.

Se há controles contidos em um PictureBox e redimensionarmos esse PictureBox em relação ao Form, a questão pode ficar um pouco mais complicada, como cita o MILTONJAU, por conta de que o PictureBox pode estar com um ScaleMode diferente do Form.

Já se você trabalhar os quatro vértices do controle sempre em proporção ao seu container, não há o perigo de que o valor calculado para altura e largura sejam inferiores á zero, o que gera um erro de execução.

Só lembrando, os valores para as coordenadas devem ser tratados como double durante os cálculos e só depois convertidos para inteiro longo.
Tópico encerrado , respostas não são mais permitidas