Saltar para o conteúdo principal
Versão: 20

List Box Object

List box de tipo array

Em um list box de tipo array, cada coluna deve estar associada a um array unidimensional 4D; podem ser utilizados todos os tipos de array, com exceção dos arrays de ponteiros. O número de linhas é baseado no número de elementos array.

Como padrão, 4D atribui o nome "ColumnX" para cada coluna. Você pode alterá-lo, assim como outras propriedades de coluna, nas propriedades das colunas. O formato de exibição de cada coluna também pode ser definido com o comando OBJECT SET FORMAT.

Os list boxes do tipo array podem ser exibidos em modo hierárquico, com mecanismos específicos.

Com list box de tipo array, o valor ingressado ou exibido são gerenciados usando a linguagem 4D. Você também pode associar uma lista de opções a uma coluna para controlar a entrada de dados. Os valores das colunas são gerenciados através de comandos List box de alto nível (como LISTBOX INSERT ROWS ou LISTBOX DELETE ROWS), bem como por comandos de manipulação de arrays. Por exemplo, para iniciar os conteúdos da coluna, pode usar a instrução abaixo:

ARRAY TEXT(varCol;size)

Também pode usar uma lista:

LIST TO ARRAY("ListName";varCol)

Aviso: quando uma list box contiver vários tamanhos diferentes de coluna, só o número de itens do menor array (coluna) será exibido. Tem que verificar que cada array tenha o mesmo número de elementos que os outros. Além disso, se uma coluna list box for vazia (isso ocorre quando o array associado não for corretamente declarado ou dimensionado usando a linguagem), a list box não exibe nada.

List box de tipo seleção

Nesse tipo de list box, cada coluna pode ser associada com um campo (por exemplo, [Employees]LastName) ou uma expressão. A expressão pode ser baseada em um ou mais campos (por exemplo, [Employees]FirstName+" "[Employees]LastName) ou pode ser simplesmente uma fórmula (por exemplo, String(Milliseconds)). A expressão também pode ser um método de proejeto, uma variável ou um item array. A expressão também pode ser um método de proejeto, uma variável ou um item array.

O conteúdo de cada linha é então avaliado de acordo com uma seleção de registros: a seleção atual de uma tabela ou uma seleção nomeada.

No caso de uma list box baseada na seleção atual de uma tablea, qualquer modificação feita do lado da database é refletida automaticamente na list box e vice versa. A seleção atual é portanto sempre a mesma em ambos os lugares.

List boxes Collection ou Entity selection

Nesse tipo de list box, cada coluna deve ser associada a uma expressão. Os conteúdos de cada linha são então avaliados por elemento de coleção ou por entidade da seleção de entidade.

Cada elemento da coleção ou cada entidade está disponível como um objeto que pode ser acessado por meio da palavra-chave This. A column expression can be a property path, a project method, a variable, or any formula, accessing each entity or collection element object through This, for example This.<propertyPath> (or This.value in case of a collection of scalar values). A expressão também pode ser um método de proejeto, uma variável ou um item array.

Quando a fonte de dados for uma seleção de entidades, qualquer modificação feita no lado da list box são salvas automaticamente na database. Do outro lado, modificações feitas na database são visíveis na list box depois que as entidades tocadas foram recarregadas.

Quando a fonte de dados for uma coleção, qualquer modificação feita nos valores da list box são refletidas na coleção. Por outro lado, se forem feitas modificações na coleção usando, por exemplo, as várias funções da classe Collection, você precisará notificar explicitamente o 4D reatribuindo a variável da coleção a ela mesma, para que o conteúdo do list box seja atualizado. Por exemplo:

myCol:=myCol.push("new value") //exibir novo valor na list box

Propriedades compatíveis

Propriedades compatíveis dependem do tipo de list box.

PropriedadeList box arrayList box seleçãoList box coleção ou entity selection
Cor de fundo alternativaXXX
Cor de FundoXXX
NegritoXXX
Expressão de cor de fundoXX
Estilo da linha de bordaXXX
InferiorXXX
ClasseXXX
Seleção de coleção ou entidadeXX
Redimensionamento automático de colunaXXX
Item atualX
Posição atual do itemX
Fonte de dadosXXX
Nome do formulário de detalhesX
Exibir cabeçalhosXXX
Exibir rodapésXXX
Clique duas vezes na linhaX
DraggableXXX
DroppableXXX
FocusableXXX
FonteXXX
Cor da fonteXXX
Expressão de Cor da FonteXX
Tamanho fonteXXX
Altura (list box)XXX
Altura (cabeçalhos)XXX
Altura (rodapés)XXX
Ocultar linhas em branco extrasXXX
Ocultar retângulo de focoXXX
Ocultar destaque de seleçãoXXX
List Box hierárquicoX
Highlight SetX
Alinhamento HorizontalXXX
Horizontal Line ColorXXX
Horizontal Scroll BarXXX
Dimensionamento horizontalXXX
ItalicXXX
LeftXXX
Tabela mestreX
Meta info expressionX
MétodoXXX
Movable RowsX
Seleção temporáriaX
Number of ColumnsXXX
Number of Locked ColumnsXXX
Number of Static ColumnsXXX
Object NameXXX
RightXXX
Row Background Color ArrayX
Row Control ArrayX
Row Font Color ArrayX
Row HeightX
Row Height ArrayX
Row Style ArrayX
Selected ItemsX
Selection ModeXXX
Edição com um único cliqueXXX
OrdenávelXXX
Ação padrãoX
Expressão de estiloXX
TopXXX
TransparenteXXX
TipoXXX
SublinhadoXXX
Variável ou ExpressãoXX
Alinhamento verticalXXX
Cor da linha verticalXXX
Barra de rolagem verticalXXX
Tamanho VerticalXXX
VisibilidadeXXX
LarguraXXX

Colunas list box, cabeçalhos e rodapés suportam propriedades específicas.

Eventos formulário suportados

Evento formulárioPropiedades adicionales devueltas (ver Evento formulario para las propiedades principales)Comentários
On After Edit
  • column
  • columnName
  • row
  • On After Keystroke
  • column
  • columnName
  • row
  • On After Sort
  • column
  • columnName
  • headerName
  • fórmulas compostas não podem ser ordenadas.
    (por exemplo, This.firstName + This.lastName)
    On Alternative Click
  • column
  • columnName
  • row
  • List box array unicamente
    On Before Data Entry
  • column
  • columnName
  • row
  • On Before Keystroke
  • column
  • columnName
  • row
  • On Begin Drag Over
  • column
  • columnName
  • row
  • On Clicked
  • column
  • columnName
  • row
  • On Close Detail
  • [row](#propriedades adicionais)
  • Pode usar a constante lk inherited para imitar a aparência atual da list box (por exemplo, cor de fonte, cor de fundo, estilo da fonte, etc.).
    On Collapse
  • column
  • columnName
  • row
  • Apenas list box hierárquicos
    On Column Moved
  • columnName
  • newPosition
  • oldPosition
  • On Column Resize
  • column
  • columnName
  • newSize
  • oldSize
  • On Data Change
  • column
  • columnName
  • row
  • On Delete Action
  • [row](#propriedades adicionais)
  • On Display Detail
  • isRowSelected
  • row
  • On Double Clicked
  • column
  • columnName
  • row
  • On Drag Over
  • área
  • [areaName](#propriedades adicionais)
  • column
  • columnName
  • row
  • On Drop
  • column
  • columnName
  • row
  • On Expand
  • column
  • columnName
  • row
  • Apenas list box hierárquicos
    On Footer Click
  • column
  • columnName
  • footerName
  • List box arrays, seleção atual e seleção temporal apenas
    On Getting Focus
  • column
  • columnName
  • row
  • Propriedades adicionais devolvidas apenas quando se edita uma célula
    On Header Click
  • column
  • columnName
  • headerName
  • On Load
    On Losing Focus
  • column
  • columnName
  • row
  • Propriedades adicionais devolvidas apenas quando a edição de uma célula tiver sido concluída
    On Mouse Enter
  • área
  • [areaName](#propriedades adicionais)
  • column
  • columnName
  • row
  • On Mouse Leave
    On Mouse Move
  • área
  • [areaName](#propriedades adicionais)
  • column
  • columnName
  • row
  • On Open Detail
  • [row](#propriedades adicionais)
  • Pode usar a constante lk inherited para imitar a aparência atual da list box (por exemplo, cor de fonte, cor de fundo, estilo da fonte, etc.).
    On Row Moved
  • newPosition
  • oldPosition
  • List box array unicamente
    On Selection Change
    On Scroll
  • [horizontalScroll](#propriedades adicionais)
  • verticalScroll
  • On Unload

    Additional Properties

    Os eventos formulário nos list box ou colunas de list box podem retornar as seguintes propriedades adicionais:

    PropriedadeTipoDescrição
    areatextÁrea de objeto List box ("header", "footer", "cell")
    areaNametextNome da zona
    columninteiro longoNúmero da coluna
    columnNametextNome da coluna
    footerNametextNome do rodapé
    headerNametextNome do cabeçalho
    horizontalScrollinteiro longoPositivo se a deslocação for para a direita, negativo se for para a esquerda
    isRowSelectedbooleanTrue se a linha estiver selecionada, senão False
    newPositioninteiro longoNova posição da coluna ou linha
    newSizeinteiro longoNovo tamanho (em pixéis) da coluna ou linha
    oldPositioninteiro longoPosição anterior da coluna ou da linha
    oldSizeinteiro longoTamanho anterior (em pixéis) da coluna ou linha
    rowinteiro longoNúmero da linha
    Alinhamento verticalinteiro longoPositivo se a deslocação for para baixo, negativo se for para cima

    Se um evento ocorrer em uma coluna ou linha "falsa" que não exista, é normalmente retornada uma cadeia de caracteres vazia.