OBS: teste realizado apenas no Windows 10 64 bits. Cabe a vocês testarem no Linux e outras versões do Windows.
Olá pessoal, esta pode ser uma dica que irá ajudar muitas pessoas.
Estou num projeto, no Lazarus, utilizando janelas personalizadas. Neste caso janelas sem borda.
O Form principal abre maximizado, porém ocorria um pequeno problema.
Quando utilizado o BorderStyle como bsNone ou bsDialog, a janela maximizada ocupava toda a tela, cobrindo assim a barra de tarefas.
Não era o que eu queria, porque quando utilizamos BorderStyle como bsSingle ou bsSizable, a janela é maximizada até o limite da barra de tarefas.
Procurei por códigos que pudessem ajudar neste sentido, e encontrei alguns, porém se alterasse o tamanho da barra de tarefas, ou se trocasse sua posição de lugar (afinal posso coloca-la nos lados ou em cima), o código já não servia.
Localizei em um fórum a resposta data por Welliton Klein Fokushima, para esta questão!
Neste caso, simplifiquei um pouco o código, o que já serviu ao seu propósito, então vamos a solução.
No evento OnShow do formulário principal, acrescentei o seguinte:
Top := Screen.WorkAreaTop;
Left := Screen.WorkAreaLeft;
Height := Screen.WorkAreaHeight;
Width := Screen.WorkAreaWidth;
Feito isto o Form não cobriu a barra de tarefas, e independente da posição, seja em cima, em baixo, ou dos lados, o mesmo foi aberto corretamente.
É isso pessoal, espero ter ajudado e
Abraço a todos.
Parabéns pela dica, era justamente o que eu procurava. Gratidão!
ResponderExcluir