Os pop-up/listas suspensos, são objetos que permitem ao usuário selecionar um elemento de uma lista. Os elementos que aparecem nas listas suspensas são manipulados 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:
![](../../picture/382763/pict382763.ES.png)
Windows
Mac OS
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 objetos pop-up/listas suspensas são iniciados ao 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.
Se deseja utilizar um pop-up/lista suspensa para manipular os valores de um campo ou de uma variável listada, 4D lhe permite referenciar diretamente o campo ou a variável como fonte de dados do objeto. Isto faz com que seja mais fácil a gestão dos campos/variáveis listados.
Nota: se utilizada uma lista hierárquica, será mostrará e pode ser selecionado o primeiro nível.
Por exemplo, no caso de um campo de "Cor" que só pode conter os valores "Branco", "Azul", "Verde" ou "Vermelho", agora é possível criar uma lista que contém estes valores e associar a um objeto pop -up de menu que referencia ao campo "Cor" 4D. 4D se encarrega então da gestão automática da entrada e a visualização do valor atual no formulário
Para associar um menu pop-up/lista suspensa ou um combo box a um campo ou variável, só é introduzido diretamente o nome do campo ou da variável na área Nome da variável do objeto:
![](../../picture/1349571/pict1349571.EN.png)
Quando se executa o formulário, 4D gerencia automaticamente o menu suspenso ou o combo box durante a entrada ou a visualização: quando um usuário escolhe um valor, é guardado no campo, quando mostrado o formulário, este valor de campo é mostrado no menu suspenso:
![](../../picture/1349575/pict1349575.EN.png)
Nota: não é possível combinar este princípio com o uso de um array para inicializar o objeto. Se introduz um nome de campo na área de Nome de variável, então deve utilizar uma lista de opções.
Ao relacionar um objeto pop-up/lista suspensa a uma lista de seleção com um campo, pode utilizar a opção Guardar como Valor/Referência disponível no tema de "Fontes de dados" da Lista de propriedades.
Esta opção lhe permite otimizar o tamanho dos dados guardados. Para obter mais informação, consulte Guardar como Valor ou Referência .
É 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.