Ir ao conteúdo
  • Cadastre-se

Como Aumentar A Figura Com A Resolução ?


nuelss

Posts recomendados

:help: Fiz um programinha no VB que usa algumas imagens de fundo, inclusive uma delas (que esta atrás de todas) ocupa todo o fundo do formulário.

O programa esta sendo criado para ser executado maximizado, ficava legal quando executado em 800 x 600 pixels. Mas tive uma surpresa; depois de algum tempo mudei a resolução para 1024 x 768 pixels, e vi que o formulário fica maximizado, porém a figura fica do tamanho antigo; e fica feio para caramba.

Como eu faço para a imagem principal crescer ou diminuir junto com a resolução da tela ???

E as figurinhas que estão dispostas no formulario, como faco para que a posição delas mude proporcionalmente junto com a resolução da tela ???

Aguardando ...

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Primeiro, se for um Form comum (SDI) e você estiver usando um controle PictureBox para colocar a imagem, troque-o por um controle Image.

Depois, coloque a propriedade Stretch deste controle para True e, no evento "Form_Resize" do Formulário, coloque esse código:

Private Sub Form_Resize()

   ControleImage.Move 0, 0, ScaleWidth, ScaleHeight

End Sub

onde ControleImage seria o nome que você deu ao controle Image. Isso vai redimensionar o Image de acordo com o tamanho do Form.

Agora se for um Formulário MDI, vai ter que fazer uma "gambiarra", pois esse tipo de Form tem algumas restrições para aceitar controles diretamente nele: você vai ter que colocar o Image dentro de um PictureBox, e colocar esse código no MDI:

Private Sub Form_Resize()

   ControlePicture.Move 0, 0, ScaleWidth, ScaleHeight

End Sub

Private Sub ControlePicture_Resize()

   ControleImage.Move 0, 0, ScaleWidth, ScaleHeight

End Sub

onde ControlePicture seria o nome que você deu ao controle PictureBox e ControleImage seria o nome que você deu ao controle Image.

Agora para mudar a posição de "figurinhas", tem que ver que tipo de controle é qual a posição que você quer (centro, topo, rodapé, direita, esquerda, etc...) mas na maioria das vezes é no evento "Form_Resize" do Formulário (ou do controle que serve de Container para aquilo que você quer mudar a posição).

Isso é fácil resolver.

B)

Link para o comentário
Compartilhar em outros sites

:unsure: OK, VALEU,

MAS AINDA ME RESTAM DUVIDAS SSOBRE AS "FIGURINHAS" (...)

AS MINHAS IMAGENS SAO DO TIPO IMAGE, E NÃO PICTURE BOX;

AGORA, AS "FIGURINHAS" SÃO TAMBEM ENTIDADES TIPO IMAGE, porém NÃO OCUPAM TODO O FORMULARIO (QUE É O FORMULÁRIO SIMPLES SDI), ELAS APENAS FICAM DISPOSTAS PELO FORMULARIO, E QUANDO EU AUMENTAR A RESOLUÇÃO DA TELA, ELAS NÃO PRECISAM MUDAR DE TAMANHO, PODEM APENAS AUMENTAR O ESPAÇAMENTO ENTRE ELAS; OU, SE FOR MAIS CONVENIENTE (ACHO QUE É), ELAS PODEM TAMBEM AUMENTAR DE TAMANHO PROPORCIONALMENTE AO TAMANHO DA TELA.

ABRAÇO,

EMANUEL

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Postado Originalmente por nuelss@19 jul 2004, 11:31

porém NÃO OCUPAM TODO O FORMULARIO (QUE É O FORMULÁRIO SIMPLES SDI), ELAS APENAS FICAM DISPOSTAS PELO FORMULARIO, E QUANDO EU AUMENTAR A RESOLUÇÃO DA TELA, ELAS NÃO PRECISAM MUDAR DE TAMANHO, PODEM APENAS AUMENTAR O ESPAÇAMENTO ENTRE ELAS

Então é a mesma coisa: você pode fazer tudo pelo evento "Form_Resize", usando o método "Move" do controle, conforme o exemplo anterior.

Mas veja que o método "Move" tem quatro argumentos: Left, Top, Width e Height. Basta usar apenas os dois primeiros, passando as coordenadas esquerda e topo para o controle (é isso que vai mudar a posição do Image conforme o tamanho do Form), e ignorar os dois últimos (para não distorcer a imagem)

Editando: se tiver mais de um controle Image para mover (aquele das figurinhas), você pode usar um deles como uma espécie de "âncora", por exemplo:

Vamos supor que você tenha os controles Image1, Image2 e Image3, cada um deles com ícones em tamanho 32x32 pixels.

Vamos supor também que você queira movê-los para o topo do Form, de modo que formem uma espécie de "barra de ferramentas".

O código ficaria mais ou menos assim:

Private Sub Form_Resize()

   

    Const Margem As Single = 150

    Const Espaco As Single = 75

   

    Image1.Move Margem, Margem

    Image2.Move (Image1.Left + Image1.Width + Espaco), Image1.Top

    Image3.Move (Image2.Left + Image2.Width + Espaco), Image2.Top

   

End Sub

Note que o Image1 é "âncora" para o Image2, ou seja, a posição do Image2 depende da posição do Image1. O mesmo serve para o Image3 com relação ao Image2, e assim será para cada controle. Os valores das constantes "Margem" e "Espaço" podem ser alterados à vontade.

Link para o comentário
Compartilhar em outros sites

:D Ok, Valeu.

:rolleyes: Não querendo pedir muito, mas me veio a ideia agora ...

Ainda não olhei no VB para ver se da para fazer, apenas li num destes topicos do Clube "Como omitir o botão X".

Como faço para omitir a barra de titulos inteira do form ???

A proposito, seu novo avatar ficou legal.

Abraço,

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Postado Originalmente por nuelss@21 jul 2004, 10:18

Ainda não olhei no VB para ver se da para fazer, apenas li num destes topicos do Clube "Como omitir o botão X".

Como faço para omitir a barra de titulos inteira do form ???

A proposito, seu novo avatar ficou legal.

Bom, se for para desabilitar o botão "X", veja como fazer neste tópico: http://forum.clubedohardware.com.br/index....howtopic=157778

Agora para ocultar a barra de título do Form inteira, coloque a propriedade "ControlBox = False", e deixe o Caption vazio, sem texto.

Quanto ao avatar, thanks!! (é o terrorista do ELG, no C&C Generals...)

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...