Splitter

13/05/2008

0

I need help! :?:
Pessoal, tenho no meu form 1 groupBox, 1 splitter e outro groupBox nessa ordem.
Eles estão com ancoras da seguinte maneira
alLeft
alLeft
alCliente
E eu preciso estabelecer um tamanho mínimo para cada GroupBox.
Fui na propriedade MinWidth dos dois e coloquei um número.
Com o GroupBox da esquerda tudo Ok, mas o da direita o splitter não respeita o limite.
Ele está só arredando o GroupBox da Direita. Como assim arredando? Ele vai aumentando o tamanho do GroupBox da esquerda, não diminui o GroupBox da direita só o arreda e como o tamanho da tela é fixo ele vai se escondendo na tela...
Isso não pode ocorrer, ele tem que respeitar o limite dos 2 GroupBox´s.
Se eu coloco o MinWidth do GroupBox da direita como 0, que é o padrão, ele não arreda o conteúdo do GroupBox não, mas é obrigatório que se tenha um minimo porque tenho botões e eles precisam aparecer, além de outras razões.
Já tentei refazer tudo, já comecei tudo do zero de novo... mas sempre dá a mesma coisa.
Se alguém souber me ajudar ficarei muito grata!


Tamiriss

Tamiriss

Responder

Posts

13/05/2008

Rodc

coloque o MaxWidth do GroupBox da esquerda para o máximo que ele pode ir.
GroupBoxEsquerda.MaxWidth := Form1.Width - GroupBoxDireita.Constraints.MinWidth;



Responder

13/05/2008

Tamiriss

coloque o MaxWidth do GroupBox da esquerda para o máximo que ele pode ir.
GroupBoxEsquerda.MaxWidth := Form1.Width - GroupBoxDireita.Constraints.MinWidth;


Eu coloquei isso no evento OnCreate e depois no OnShow do formulário.
Ao chamar meu formulário dava o erro Access Violation e o meu problema persistiu.

Fiz uma pequena alteração coloquei:

GroupBoxVeiculo.Constraints.MaxWidth := FormCadPneus.Width - GroupBoxPneu.Constraints.MinWidth;



Responder

13/05/2008

Rodc

não entendi, você conseguiu resolver o problema ou deu erro?


Responder

13/05/2008

Tamiriss

não entendi, você conseguiu resolver o problema ou deu erro?


Deu erro.
Expliquei os 2 lugares que coloquei o código pra ver se talvez pudesse ser o lugar.
Mas nos 2 deram o mesmo erro.


Responder

13/05/2008

Rodc

Fiz um programinha de teste e funcionou sem problemas no OnShow(). Depura o seu programa e verifica se é realmente nesta linha que está gerando o erro. Verifica se os dois groupbox estão instanciados.
Segue o meu teste:
GroupBox1.Constraints.MaxWidth := Width - GroupBox2.Constraints.MinWidth;



Responder

14/05/2008

Tamiriss

Verifiquei lá, e o access violation dá quando ele passa pela linha mesmo, coloquei o evento no OnShow assim como vc me falou.
O erro só aparece na primeira vez que o formulário é chamado. Se o programa é rodado e chamo o formulário ele dá o erro. Se fecho e depois chamo de novo não dá o erro mais.
E outra, o MinWidth tem um número fixo e ele só tá respeitando quando está no tamanho padrão da tela. Quando a tela é maximizada ele aceita no máximo o tamanho que estava antes.


Responder

14/05/2008

Tamiriss

Coloquei o mesmo código no evento OnMoved do splitter e deu tudo certinho, sem erro algum.

Brigadinha!


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar