seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^

Você não está conectado. Conecte-se ou registre-se

 » Logica de programação » Algoritimos e Logica » [tutorial] botao redimensiona junto com a janela

[tutorial] botao redimensiona junto com a janela

Ir em baixo  Mensagem [Página 1 de 1]

Kodo no Kami

avatar
master
master
e ae galera a pedido do mmxm vou ensinar como fazer para o botao expandir junto com com janela quando maximizar, porem como tive problema para instalar o gtk aq nesse windows vou ensinar por logica assim da para fazer em qualquer outra linguagem ou biblioteca, para começar vamos analisar a imagem abaixo

[Você precisa estar registrado e conectado para ver esta imagem.]

vamos imaginar que a imagem anterior seja nosso programa, a parte preta seja o contorno da janela e parte azul seja os botoes, para a gente expandir os botoes conforme a janela aumentar temos que saber 4 coisas que sao largura e altura da janela e dos dois botoes e posição que eles estao para direita ou para baixo dentro da janela, com isso da para a gente calcular tudo certinho, vamos primeiro calcular os botoes, nesse exemplo os dois botoes tem a mesma largura e altura entao isso quer dizer que podemos fazer isso

Código:
botao2_largura = botao1_largura
botao2_altura = botao1_altura

eu disse para o programa que o botao2 vai receber a mesma largura e altura do botao1 entao se eu modificar esses atributos do botao1 no botao2 tambem vai modificar automaticamente capiche?, se os botões tiver tamanhos diferentes a gente teria que calcular essa diferença com base no tamanho dos dois incrementando ou decrementando a diferença entre eles (como no meu exemplo os botoes tem o mesmo tamanho nao precisamos preocupar com isso), agora temos que saber a posição dos botoes, para ser mais especifico a gente so precisa saber do primeiro botao, o segundo vai usar o primeiro como referencia para saber qual é posição que ele vai, essa posição é na maioria das bibliotecas ou linguagem é a mesma coisa que seria da onde o botao vai iniciar e nao o fim dele, com isso basta a gente calcular a posição da direita do botao1 + a largura do botao1 + o espaço entre os dois botoes depois atribuir isso para a posição para direita do botao2

Código:
botao2_largura = botao1_largura
botao2_altura = botao1_altura

botao2_posDir = botao1_posDir + botao1_largura + espaço

se a gente fizer isso mesmo que movemos o botao1 um pouco para direita ou esquerda o botao2 vai ficar sempre a direita dele depois de um espaço e ambos tera o mesmo tamanho

[Você precisa estar registrado e conectado para ver esta imagem.]

ate agora so foi a parte de posicionar o botao2 com referencia ao botao1 isso nao vai fazer expandir o botao, para a gente expandir o botao basta pegar a largura da janela dividir pela quantidade de botao no caso 2 e subtrair pelo espaço entre os botões (no caso o espaço são 3 que é dois espaço entre as bordas da janela e um espaço entre o botao, voce pode somar os 3 ou colocar o valor dos 3 ja somado tanto faz) e atribuir isso para a largura do botao1 que vai atribuir para largura do botao2 automaticamente (lembrando eles tem o mesmo tamanho), tambem é recomendado colocar isso antes de calcular o tamanho dos botoes

Código:
botao1_largura = janela_largura / 2 - (espaço * 3)

botao2_largura = botao1_largura
botao2_altura = botao1_altura

botao2_posDir = botao1_posDir + botao1_largura + espaço

como nao tem botao embaixo so precisamos pegar a altura da janela e subtrair com espaço da borda depois atribuir para o altura do botao1, e pronto fizemos um botao que redimensiona automaticamente (dependendo da linguagem do tipo de biblioteca existe meios de alinhar dessa forma com poucos codigos e sem muito trabalho kkkkk)

Código:
botao1_largura = janela_largura / 2 - (espaço * 3)
botao1_altura = janela_altura - espaço

botao2_largura = botao1_largura
botao2_altura = botao1_altura

botao2_posDir = botao1_posDir + botao1_largura + espaço

veja o mesmo exemplo usando borland c++ 6

Código:
void __fastcall TForm1::tmr1Timer(TObject *Sender)
{
   btn1->Width = Form1->Width / 2 - (10 * 3);
   btn1->Height = Form1->Height - 60;

   btn2->Width = btn1->Width;
   btn2->Height = btn1->Height;

   btn2->Left = btn1->Left + btn1->Width + 10;
}

[Você precisa estar registrado e conectado para ver esta imagem.]

se expandi a janela os botao redimensiona junto

[Você precisa estar registrado e conectado para ver esta imagem.]

bom galera é isso ^^

by kõdo no kami


_________________ASSINATURA_________________
[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]

Contato:
Spoiler:

Contato:
Facebook: [Você precisa estar registrado e conectado para ver este link.]
Skype: hackerfts315
http://endoffile.umforum.net

mmxm


avançado
avançado
Vlw mano , me ajudou muito kkkkk


_________________ASSINATURA_________________
[Você precisa estar registrado e conectado para ver esta imagem.]

Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum