Os formulários de utilizador têm como objetivo facilitar a vida aos utilizadores. Mas o que acontece quando a deslocação se torna uma batalha entre os subformulários e os seus conteúdos? Provavelmente já passou por isto: tenta deslocar-se através de uma caixa de listagem num subformulário, mas todo o subformulário se move. Ou, pior, tenta rolar o próprio subformulário, mas a caixa de listagem teima em ficar parada!
Isso foi melhorado com 4D 20 R6, tornando a ação mais natural.
O que deve rolar? O subformulário ou seu conteúdo?
Inicialmente (digamos “há muito tempo”), usar uma roda de rolagem ou trackpad, só rolava o subformulário em si, não os objetos contidos no subformulário em si. Depois, passou a ser o contrário! Os objetos incluídos deslocavam-se, mas não necessariamente o próprio subformulário. A menos, claro, que se utilizem as barras de deslocação, mas estas estão muitas vezes ocultas. Em suma, nem sempre foi fácil para o usuário!
Um GIF pode ajudá-lo a compreender o objetivo.
Eis o que podemos fazer agora utilizando a roda do rato (ou um trackpad)!
O melhor dos dois mundos
A partir de agora, se um subformulário contiver objetos com deslocação, este último deslocar-se-á primeiro, desde que estes objetos estejam sobre o rato quando a roda de deslocação ou o trackpad é ativado. Alguns objetos podem ou não ser deslocáveis, dependendo do seu conteúdo. Uma lista vazia, uma imagem pequena ou uma caixa de listagem cujo conteúdo é totalmente apresentado nunca se deslocará.
O resultado é natural em todos os casos: se um objeto dentro de um subformato puder deslocar-se, deslocar-se-á! Caso contrário (se estiver vazio ou já tiver sido totalmente deslocado), o subformulário “pai” desloca-se… até ser encontrado um novo objeto deslocável no subformulário. Etc. até à parte inferior do subformulário.
Naturalmente, isto funciona em todas as direções, de cima para baixo, de baixo para cima, da esquerda para a direita ou da direita para a esquerda.
Conclusão
Esta alteração, aparentemente pequena, faz uma grande diferença na experiência do utilizador. Os utilizadores podem navegar com confiança pelos formulários, sabendo exatamente o que irá rolar com base no local onde passam o cursor. Isto permite-lhe a si, o programador, conceber interfaces mais intuitivas e fáceis de utilizar.