Os menus suspensos, as listas suspensas e as áreas de rolagem são objetos que permitem ao usuário selecionar um elemento de uma lista. Os elementos que aparecem nos menus suspensos e nas áreas de navegação são manejados utilizando um array.
Um array é uma lista de valores em memória referenciados pelo nome do array (ver Arrays e objetos de formulário). Um menu/lista suspensa mostra um array como uma lista de valores que aparece quando se clica sobre ele.
Os nomes “Menu suspenso” e “Lista suspensa” se referem aos mesmos objetos; “Menu suspenso” é parte da terminologia de Mac OS e “Lista suspensa” de Windows. Como mostram os exemplos a seguir, a aparência destes objetos é ligeiramente diferente dependendo da plataforma:

Windows
Mac OS
Uma área de rolagem mostra o array em uma lista que pode ser navegável e utilizada para selecionar um elemento. Este é um exemplo de uma área de rolagem:

Os objetos são iniciados ao se carregar uma lista de valores em um array. Pode-se fazer isso de várias formas:
- Introduzir uma lista de valores padrão nas propriedades do objeto. Para fazê-lo, clique no botão Editar... no tema “Fonte de dados” da Lista de Propriedades. Para maiores informações, consulte Listas de valores padrão. Os valores padrão são carregados automaticamente em um array. É possível fazer referência ao array utilizando o nome da variável associada ao objeto.
- Antes que o objeto seja mostrado, execute o código que atribua os valores aos elementos do array. Por exemplo:
ARRAY TEXT(aCidades;6)
aCidades{1}:="São Paulo"
aCidades{2}:="Rio de Janeiro"
aCidades{3}:="Curitiba"
aCidades{4}:="Brasília"
aCidades{5}:="Salvador"
aCidades{6}:="Porto Alegre"
Também neste caso, o nome da variável associada ao objeto no formulário deve ser aCidades.
Este código deveria ser localizado no método de formulário e executado quando se produz o evento de formulário On Load. - Antes que o objeto seja mostrado, carregue os valores de uma lista no array utilizando o comando LIST TO ARRAY. Por exemplo,
LIST TO ARRAY ("Cidades";aCidades)
Neste caso, o nome da variável associada ao objeto no formulário deve ser aCidades.
Este código pode ser executado no lugar das declarações de atribuição anteriores
Se você precisa guardar em um campo a escolha do usuário, é necessário utilizar uma declaração de atribuição que seja executada depois de que se aceite o registro. Uma declaração completa tipo Case no método de objeto seria vista como esta:
Na página Eventos da janela Lista de propriedades, você deve escolher os eventos que você testou em sua declaração tipo Case..
Os arrays sempre contêm um número finito de elementos. A lista de elementos é dinâmica e pode ser modificada por um método. Os elementos em um array podem ser modificados, organizados e adicionados.
Para maiores informações sobre a criação e utilização de um array, consulte o capítulo sobre arrays no capítulo Arrays do Manual de Linguagem.
É possível atribuir a ação automática Ir para a página a um menu/lista suspensa ou a uma área de rolagem (tema “Ação” da Lista de propriedades). Quando esta ação está selecionada, 4D mostra automaticamente a página do formulário que corresponda ao número do objeto selecionado na lista suspensa ou na área de rolagem.
Por exemplo, se o usuário seleciona o terceiro elemento da lista, 4D mostrará a terceira página do formulário atual (se existir). Se deseja manejar você mesmo o efeito da seleção de um elemento, selecione Sem ação.