Os pop-up/listas suspensas , são objetos que permitem ao usuário selecionar um elemento de uma lista. Os elementos que aparecem nas listas suspensas são manejados utilizando um array ou uma lista de valores por padrão.
Um array é uma lista de valores guardados em memória referenciados pelo nome do array (ver Arrays e objetos de formulário). Um pop-up/listas suspensas mostra um array como uma lista de valores que aparece quando se clica sobre ele.
Os nomes “Pop-up“ e "Lista suspensa” se referem aos mesmos objetos; “Pop-up” é 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
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 contem 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 objeto pop-up/lista suspensa (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 elemento selecionado na lista.
Por exemplo, se o usuário seleciona o terceiro elemento da lista, 4D mostrará a terceira página do formulário atual (se existe). Se deseja manejar você mesmo o efeito da seleção de um elemento, selecione Sem ação.