Este tema inclui a propriedade Fonte de dados que é utilizada para especificar o tipo de list box:
Selecione a opção Seleção atual se você quiser utilizar expressões, campos ou métodos cujos valores serão avaliados para cada registro da seleção atual de uma tabela.
Selecione a opção Seleção temporária se você quiser utilizar expressões, campos ou métodos cujos valores serão avaliados para cada registro de uma seleção temporária.
Selecione a opção arrays se você quiser utilizar elementos do array como linhas do list Box.
Este tema aparece somente para os list box de tipo seleção. Contém a propriedade tabela principal para os list Box de tipo seleção atual ou seleção temporária para os list Box de tipo seleção temporária.
Tabela principal: permite especificar a tabela cuja seleção atual será utilizada. Esta tabela e sua seleção atual serão a referência para os campos associados com as colunas do list Box (referências de campos ou expressões que contém campos). Inclusive se algumas colunas contem campos de outras tabelas, o número de linhas mostradas será definido pela tabela principal. O menu associado a esta propriedade mostra todas as tabelas do banco, sem importar se o formulário está relacionado a uma tabela (formulário tabela) ou não (formulário projeto). Por padrão, a propriedade mostra a primeira tabela do banco. Para maiores informações sobre o comportamento desta propriedade, consulte o parágrafo Visualização de campos em list boxes.
Seleção temporária: permite especificar a seleção temporária a ser utilizada. Você deve introduzir o nome de uma seleção temporária válida. A seleção temporária pode ser processo ou interprocesso. O conteúdo do listbox será baseado nesta seleção. A seleção temporária escolhida deve existir e ser validada no momento da visualização do list Box, caso contrário o list Box será mostrado vazio. Se você deixar vazia a área do nome, o list Box será mostrado vazio. Nota As seleções temporárias são listas ordenadas de registros. São utilizadas para conservar em memória a ordem e o registro atual de uma seleção. Para maiores informações, consulte Seleções temporárias no manual de Linguagem de 4D.
Este tema agrupa as propriedades fundamentais do objeto.
Número de colunas: número de colunas mostradas no list box (1 por padrão). É possível modificar o número de colunas (adicionar, duplicar ou apagar uma coluna) utilizando o menu contextual (clique em uma coluna ou em um título de coluna):
Número de colunas bloqueadas: número de colunas que devem ser mostradas permanentemente na parte esquerda do list box, inclusive se o usuário se desloca pelas colunas horizontalmente. Uma coluna bloqueada pode redimensionar-se, editar-se, etc. como toda coluna. Só sua posição no list box está bloqueada (não se desloca). Isto pode ser útil, por exemplo, para mostrar os "títulos" das linhas em um array de grande tamanho. Esta propriedade define uma "área bloqueada". Se uma coluna bloqueada se apagar por programação, o número de colunas bloqueadas no list box diminui em 1. Da mesma forma, se uma coluna se penetra por programação na área bloqueada, esta coluna se bloqueia automaticamente. Nota: consulte a seção "Colunas bloqueadas e colunas fixas" para uma comparação de duas funcionalidades.
Número de colunas fixas: número de colunas que não podem se mover durante a execução. Este valor indica o número de colunas fixas a partir da primeira coluna do list Box. Para evitar toda movimentação de colunas, este valor deve ser igual ao número total de colunas. Esta propriedade leva em consideração as colunas invisíveis. Por padrão, se o modo hierárquico não estiver ativo (Opção List box hierárquico não selecionada) o valor da propriedade é 0, o que significa que todas as colunas podem se mover. Quando o modo hierárquico estiver ativo (list boxes de tipo array unicamente), esta opção sempre é pelo menos 1. Nota: consulte a seção "Colunas bloqueadas e colunas fixas" para uma comparação de duas funcionalidades.
Seleção múltipla: esta propriedade é adicionada para os list Box de tipo seleção somente. Permite especificar o conjunto a ser utilizado para controlar os registros selecionados no list Box (quando está selecionada a fonte de dados Arrays, é utilizado um array booleano com o mesmo nome que o list Box). 4D cria um conjunto padrão, chamado ListBoxSetN (N começa em 0 e aumenta em função do número de list boxes no formulário), que pode modificar se for necessário (por ser um conjunto processo ou inter processo). O conjunto é automaticamente mantido por 4D. Se o usuário seleciona uma ou mais linhas no list Box, o conjunto se atualiza imediatamente. Se você quiser selecionar uma ou mais linhas por programação, aplique os comandos do tema “Conjuntos” a este conjunto.
Notas
O estado ressaltado das linhas do list Box e dos registros da tabela são totalmente independentes.
Se a propriedade “Seleção múltipla” não contém um nome, não será possível realizar seleções no list Box.
Array linhas ocultas (list box de tipo array unicamente): permite ocultar uma ou várias linhas no listbox. Deve introduzir o nome de um array de tipo Booleano. O array deve ter o mesmo número de elementos que o listbox. Cada elemento do array representa o estado mostrado/oculto da linha correspondente no list box:
Para ocultar a linha, passe True,
Para mostrar a linha, passe False.
Se não foi definido um array ou se o array está vazio, todas as linhas do list box são visíveis. Por padrão, as linhas adicionadas são visíveis. Ocultar as linhas afeta unicamente a visualização do listbox. As linhas ocultas estão presentes nos arrays e podem ser manipuladas por programação. Os comandos da linguagem, especialmente Get number of listbox rows ou GET LISTBOX CELL POSITION, não levam em conta o estado oculto/mostrado das linhas. Por exemplo, em um list box de 10 linhas onde 9 linhas estão ocultas, Get number of listbox rows devolve 10. Desde o ponto de vista do usuário, a presença de linhas ocultas em um list box não é visível. Só as linhas visíveis são selecionáveis (por exemplo via o comando Select All).
Modo de seleção: permite definir o modo de seleção das linhas no list box. Há três modos disponíveis:
Nenhum: não pode ser selecionada nenhuma linha e não é possível introduzir dados. A seleção e gestão de dados pode ser realizada unicamente por programação. O clique ou o duplo clique na lista não tem nenhum efeito (inclusive se a opção Editável está selecionada para as colunas) porém podem ser gerados os eventos On Clicked e On Double Clicked. Neste modo, o desenvolvedor tem controle total das seleções (utilizando o conjunto ressaltado) e da entrada de dados (utilizando o comando EDIT ITEM). Não são gerados os eventos de formulário On Selection Change e On Before Data Entry. Por outra lado, o evento On After Edit pode ser gerado quando os dados são introduzidos pelo usuário por meio do comando EDIT ITEM.
Linha única: uma só linha pode ser selecionada por vez.
Multilinhas: várias linhas (adjacentes ou não) utilizando atalhos padrão: Shift+clique para uma seleção contínua e Ctrl+clique (Windows) ou Comando+clique (Mac OS) para uma seleção descontínua.
Clique duas vezes em uma fila (para list box tipo “seleção” unicamente): define a ação que será levada a cabo quando um usuário faça clique duplo sobre uma fila no listbox. As seguintes opções estão disponíveis:
Não fazer nada (por padrão): fazer clique duplo em uma linha não desencadeia nenhuma ação automática.
Modificar Registro: clique duplo em uma linha mostra o registro correspondente no formulário detalhado definido para o list box (ver o parágrafo " Formulário Detalhado" mais adiante). O registro está aberto em modo leitura e escritura podendo ser modificado.
Mostrar registro: idêntica a ação anterior, exceto que o registro é aberto em modo de só leitura de maneira que não possa ser modificado. Nota: Ao fazer duplo clique em uma linha vazia não passa nada. Independentemente da ação selecionada escolhida, é gerado o evento de formulário On Double clicked. Para as duas últimas ações, o evento de formulário On Open Detail também é gerado. On Close Detail logo é gerado quando é mostrado um registro no formulário detalhado associado ao list box antes de ser fechado (sem importar se o registro foi modificado ou não).
Formulário detalhado (list box de tipo seleção unicamente): especifica o formulário a utilizar para modificar ou mostrar os registros individuais do list box. O formulário definido é mostrado:
quando utilize as ações estandarte Adicionar Sub registro e Editar Sub registro aplicadas ao list box (ver Utilizar ações estandarte),
quando clica duas vezes em uma linha e a propriedade Clique Duplo em linha está definida para "Editar registro" ou "Mostrar Registro" (ver a seção “Clique duplo em uma fila” acima).
As colunas bloqueadas e as colunas estáticas são duas funcionalidades separadas e independentes nos list box:
as colunas bloqueadas sempre se mostram à esquerda do list box, não se deslocam horizontalmente.
as colunas estáticas não se podem mover por arrastar e soltar ao interior do list box.
Nota: pode definir as colunas estáticas e as colunas bloqueadas por programação, ver o capítulo List Box no manual de Linguagem de 4D.
Estas propriedades interajam da seguinte forma:
Se define unicamente colunas estáticas, não se podem mover.
Se define colunas bloqueadas, mas não estáticas, pode mudar sua posição livremente na área bloqueada. No entanto, uma coluna bloqueada não se pode mover fora desta área bloqueada.
Se define um mesmo número de colunas bloqueadas como de colunas estáticas, não poderá mover as colunas na área bloqueada.
Pode definir uma combinação de colunas bloqueadas e estáticas de acordo a suas necessidades. Por exemplo, se define três colunas bloqueadas e uma coluna estática, o usuário pode intercambiar as duas colunas mais à direita dentro da área bloqueada (já que só a primeira coluna é estática).
Estes temas administram a visualização e a altura dos cabeçalhos e dos pés de colunas do list box. Tenha em conta que as áreas de cabeçalhos e de rodapés não são editáveis durante seu uso. Seus conteúdos sempre se calculam.
Mostrar cabeçalhos e Mostrar rodapés: permite mostrar ou ocultar os cabeçalhos ou os rodapés das colunas. Não há outras opções disponíveis em cada tema a menos que esta propriedade esteja selecionada. Uma vez a área se mostre no list box, pode selecionar fazendo clique nela para entrar a suas propriedades específicas na Lista de propriedades (ver Propriedades específicas dos títulos de list box e Specific properties of List box footers). Você dispõe de uma área de cabeçalho e de uma área de rodapé por coluna, configuradas por separado.
Invisível por padrão: Como para todos os objetos de formulário, esta opção facilita a gestão dinâmica da visualização do objeto utilizando o comando OBJECT SET VISIBLE. O comando OBJECT SET VISIBLE não tem nenhum efeito se a opção "Mostrar cabeçalhos" ou "Mostrar rodapés" correspondente não está selecionada na lista de propriedades.
Altura: permite definir a altura da linha de cabeçalho e da linha de rodapé do list box. Pode definir a unidade (linhas ou píxels) para o valor da altura. Para obter mais informação ao respeito, consulte o parágrafo Altura em píxels ou linhas a continuação. Por padrão, a altura dos cabeçalhos e dos rodapés é de uma linha. Atenção: a altura mínima em píxels dos cabeçalhos depende do sistema. Se passa um valor muito pequeno, será substituído pelo tamanho mínimo definido no sistema para os cabeçalhos. Não há um tamanho mínimo para os rodapés e as linhas. Nota de compatibilidade: em Windows 7 e Windows Vista, a altura mínima dos cabeçalhos é de 24 píxels. Os cabeçalhos de menor altura definidos em suas bases convertidas se redimensionarão automaticamente. Neste caso, poderia ser necessário retomar seus formulários.
Pode se definir a altura dos cabeçalhos, rodapés e linhas em unidades de píxels ou de linhas de texto. Na lista de propriedades, a eleição da unidade se realiza utilizando o botão associado ao campo "Altura".
Também pode inserir uma "L" (de linha) ou uma "P" (de píxels) diretamente na área de valor, (por exemplo, "17 P") e a etiqueta do botão se atualiza em consequência.
Pode inclusive utilizar os dois tipos de unidades em um mesmo list box:
Quando se utiliza a unidade "píxels", o valor da altura se aplica diretamente à linha que se trate, independentemente do tamanho das fontes contidas nas colunas. Se a fonte é muito grande, o texto se trunca. Além disso, as imagens se truncam ou redimensionam em função de seu formato.
Quando se utiliza a unidade "Linha", a altura se calcula tendo em conta o tamanho da fonte da linha em questão. Se mais de um tamanho se ajusta, 4D utiliza o mais grande. Por exemplo, se a linha contém "Verdana de 18", "Ginebra, 12 e "Arial 9", 4D utiliza "Verdana 18" para determinar a altura da linha (por exemplo, 25 píxels). Esta altura se multiplica pelo número de linhas definidas. Nota: este cálculo não leva em conta o tamanho das imagens nem dos estilos aplicados as fontes.
Conversão das unidades: quando se passa de uma unidade a outra, 4D realiza automaticamente a conversão e mostra o resultado na Lista de Propriedades. Por exemplo, se a fonte utilizada é "Lucida Grande 24", a altura "1 linha" se converte em "30 píxels" e a altura "60 píxels" se converte em "2 linhas". Note que a conversão de um lado a outro pode dar lugar a um resultado final diferente do valor de partida devido aos cálculos realizados automaticamente por 4D. Isto se ilustra nas seguintes sequências: (fonte Arial 18): 52 píxels-> 2 linhas -> 40 píxeles (fonte Arial 12): 3 píxels-> 0.4 linha arredondada a 1 linha -> 19 píxels
Este tema sólo está disponível para os list boxes cuja fonte de dados é Arrays. Suas opções configuram a visualização hierárquica do list box. Lembre que estas propriedades se modificam automaticamente quando se define a hierarquia utilizando o menu emergente do objeto list box (ver Criar e usar list box hierárquicas).
List box hierárquico: se utiliza para especificar que o list box devem ser mostrado em forma hierárquica.
Variável 1 ... 10: estas opções adicionais aparecem quando a opção List box hierárquico está selecionada. Cada vez que se introduz um valor em um campo, se agrega uma nova fila. Podem ser especificadas até 10 variáveis. Estas variáveis definem os níveis hierárquicos que se mostrarão na primeira coluna.
A primeira variável sempre corresponde ao nome da variável da primeira coluna do list box (os dois valores são linkados automaticamente). Esta primeira variável é sempre visível e editável. Por exemplo: país. A segunda variável é sempre visível e editável, especifica o segundo nível hierárquico. Por exemplo: regiões. Começando com o terceiro campo, cada variável depende da qual a precede. Por exemplo: departamentos, cidades, etc. Podem ser especificados um máximo de dez níveis hierárquicos. Se elimina um valor, toda a hierarquia se move um nível. A última variável nunca é hierárquica, mesmo que vários valores idênticos existam neste nível. Por exemplo, em referência à configuração ilustrada anteriormente, imagine que arr1 contém os valores A A A B B B, arr2 tem os valores 1 1 1 2 2 2 e arr3 os valores X X Y Y Y Z. Neste caso, A, B, 1 e 2 poderia aparecer em forma contraída, mas não X e Y: + A + 1 X X Y + B + 2 Y Y Z Este princípio não se aplica quando uma só variável se especifica na hierarquia : neste caso, os valores idênticos podem ser agrupados. Nota: se especifica uma hierarquia baseada nas primeiras colunas de um list box existente, deve então apagar ou ocultar estas colunas (exceto a primeira), do contrário, aparecerão dois vezes na list box. Se define a hierarquia através do menu emergente do editor (ver Criar e usar list box hierárquicas), as colunas desnecessárias são eliminadas automaticamente do list box.
Este tema reúne todas as propriedades relacionadas com as coordenadas, altura e largura do list box.
A propriedade Altura de filas é específica: permite definir a altura das linhas do list box. Note que a altura da linha das áreas de cabeçalhos e de rodapés se define separado, nos temas "Cabeçalho e Rodapés. Pode definir uma altura em píxels ou em linhas.Para maior informação sobre a eleição da unidade, consulte o parágrafo "Altura em píxels ou em linhas". Por padrão, a altura das linhas está definida em função da plataforma e o tamanho da fonte.
Este tema reagrupa as propriedades relativas às cores de fundo das filas bem como com o estilo da borda.
Cor de fundo: permite definir a cor de fundo do list box. Esta cor se utiliza para todo o objeto com exceção dos títulos (se são mostrados).
Cor de fundo alternativa: permite definir uma cor de fundo diferente para as linhas ímpares do list box. Utilizar uma cor de fundo alternativa facilita a leitura dos arrays.
Estilo da borda: permite definir um estilo padrão para a borda do objeto de list box.
Este tema junta as propriedades estandarte de definição do texto mostrado no list box:
Array de estilos (list box de tipo array) / Estilos (list box de tipo seleção): permite aplicar um estilo de caracteres personalizado a cada linha do list box.
Para os list box de tipo array, deve introduzir o nome de um array de tipo Inteiro longo. Cada elemento deste array corresponde a uma fila do list box; o array deve ter o mesmo tamanho que os arrays associados as colunas. Para encher o array (utilizando um método), utilize as constantes do tema “Texto”. Somando as constantes, pode combinar estilos. Para aplicar o estilo definido nas propriedades do list box a uma fila, atribua o valor -255 ao elemento do array correspondente.
Para os list box de tipo seleção, deve introduzir uma expressão ou uma variável (exceto para um array). A expressão ou a variável se avaliará para cada linha mostrada. Pode utilizar o editor de fórmulas para definir uma expressão. Para fazer isso, faça clique no botão [...] que aparecer quando seleciona a área. Pode utilizar as constantes do tema Estilos de fonte. O seguinte exemplo utiliza um nome de variável: entre EstiloEmpresa na área Estilos e no método de formulário, escreva o seguinte código:
Array de cores de fonte (list box de tipo array) / Cores de fonte (list box de tipo seleção): permite aplicar uma cor de fonte personalizada a cada fila do list box. Deve utilizar os valores de cores RGB. Para maior informação consulte a descrição do comando SET RGB COLORS no manual Linguagem de 4D.
Para os list box de tipo array, deve introduzir o nome de um array de tipo Inteiro longo. Cada elemento deste array corresponde a uma linha do list box; o array deve ter o mesmo tamanho que os arrays associados as colunas. Pode utilizar as constantes do tema DEFINIR CORES RVA. Para aplicar a cor de fonte definido nas propriedades do list box a uma linha, passe o valor -255 ao elemento do array correspondente.
Para os list box de tipo seleção, deve introduzir uma expressão ou uma variável (exceto para um array). A expressão ou variável será avaliada para cada linha mostrada. Pode utilizar o editor de fórmulas para definir uma expressão. Para fazer isso, faça clique no botão [...] que aparece ao selecionar a área. Pode utilizar as constantes do tema DEFINIR CORES RVA. O seguinte exemplo utiliza um nome de variável: introduza CorEmpresa na área Cor de fonte e no método de formulário, escreva o seguinte código:
Array de cores de fundo (list box de tipo array) / Cores de fundo (list box de tipo seleção): permite aplicar uma cor de fundo personalizado a cada linha do list box. Deve utilizar os valores de cores RGB. Para maior informação, consulte a descrição do comando SET RGB COLORS no manual de Linguagem 4D.
Para os list box de tipo array, deve introduzir o nome de um array de tipo inteiro longo. Cada elemento deste array corresponde a uma linha do list box; o array deve ter o mesmo tamanho que os arrays associados as colunas. Pode utilizar as constantes do tema DEFINIR CORES RVA. Para aplicar a cor de fundo definido nas propriedades do list box a uma linha, passe o valor -255 ao elemento do array correspondente.
Para os list box de tipo seleção, deve introduzir uma expressão ou uma variável (exceto para um array). A expressão ou variável será avaliada para cada linha mostrada. Pode utilizar o editor de fórmulas para especificar uma expressão. Para fazer isso, faça clique no botão [...] que aparece quando seleciona a área. Pode utilizar as constantes do tema DEFINIR CORES RVA.
Alinhamento horizontal: o conteúdo de cada cela se pode alinhar horizontalmente em direção a Direita, Esquerda ou Centro. A opção Por padrão define a alienação em função do tipo de dados que se encontram em cada coluna: os textos e as imagens se alinham à esquerda, os dados numéricos à direita..
Alinhamento vertical: o conteúdo de cada cela se pode alinhar verticalmente em direção Em cima, Centro ou Abaixo. A opção Por padrão define alienação em função do tipo de dados que se encontram em cada coluna: Abaixo para todos os dados exceto imagens, Em cima para os dados de tipo imagem.
Note que as propriedades de alienação podem aplicar-se globalmente ao list box ou por separado para cada coluna. Eles também estão disponíveis para as áreas de cabeçalhos e rodapés.
Este tema reúne as propriedades relativas ao comportamento dinâmico do list box.
Método do objeto (Editar...): este botão mostra o método do objeto de list box (observe que cada coluna também pode conter um método de objeto).
Arrastável e Soltável: ativa as funções arrastar e soltar do list box, permitindo arrastar uma fila do list box para outro list box ou outro objeto 4D e vice-versa. Só as filas do list box podem ser arrastadas e soltas. Não é possível arrastar e soltar as colunas (no entanto, é possível arrastar as colunas para o interior de um mesmo list box). A gestão efetiva de arrastar e soltar nos list box é efetuada com a ajuda de mecanismos padrão de 4D (eventos de formulário On Drope On Drag Over, comandos DRAG AND DROP PROPERTIES e Drop position).
Filas deslocáveis (list box de tipo array unicamente): autoriza o deslocamento de linhas em execução. Esta opção está selecionada por padrão. Esta opção não está disponível para os list boxes de tipo seleção nem para os list box em modo hierárquico (opção List box hierárquico selecionada).
Ordenável: permite ordenar os dados das colunas ao se clicar no título. Esta opção está selecionada por padrão.
Os arrays de tipo imagem (colunas) não podem ser ordenados utilizando este mecanismo.
Nos list boxes baseados nas seleções de registros, só está disponível a função de ordenação padrão:
quando a fonte de dados é a Seleção atual,
com as colunas associadas aos campos (de tipo alfa, numérico, data, hora ou booleano).
Nos outros casos (list boxes baseados nas seleções temporais, colunas associadas com as expressões), a função de ordenação padrão não está disponível.
A ordenação padrão do list box modifica a ordem da seleção atual no banco de dados. No entanto, os registros selecionados e o registro atual não se alteram. A ordenação padrão sincroniza todas as colunas do list box, incluindo as colunas calculadas.
A opção Área de deslocamento apresenta neste tema está desenhada para acompanhar a conversão das antigas "áreas de deslocamento", automaticamente transformadas em list boxes a partir de 4D v13. No entanto, está disponível para todos os list boxes:
Quando a opção Área de deslocamento é selecionada por um list box, as seguintes operações específicas se implementam:
Se o array (único) do list box têm a propriedade "invisível, o objeto list box também é completamente invisível.
Assinalar um valor ao array seleciona a linha correspondente no list box (por exemplo: MeuArray:=5 seleciona a quinta linha do list box).
Pelo contrário, fazer clique em uma linha do objeto modifica o valor atual do array.
Quando um soltar se realiza desde uma linha do list box em um objeto externo, o comando DRAG AND DROP PROPERTIES executado neste objeto devolve um ponteiro ao array do list box (e não ao list box mesmo).
Os list boxes que vem da conversão das antigas áreas de deslocamento agrupadas estão conectados. Os list box conectados funcionam de maneira coordenada:
a seleção de uma linha em um list box seleciona esta mesma linha em todos os list box que pertencem ao grupo conectado,
o deslocamento vertical de um list box também desloca os list box que pertencem ao mesmo grupo conectado.
Nota: os list box convertidos também se agrupam no formulário (função estandarte de 4D).
Pode conectar-se e desconectar-se dos list box utilizando os comandos Conectar e Desconectar que se encontram no menu Objeto do editor de formulários:
Estes comandos se habilitam contextualmente quando vários list box estão selecionados no formulário. Quando um list box conectado (ou seja, que pertence a um grupo de conexão) está selecionado, uma "marca" específica se mostra em todos os list box que pertencem ao mesmo grupo de conexão:
Nota de compatibilidade: estes princípios fazem possível reproduzir o funcionamento das áreas de deslocamento agrupadas. No entanto, lhe recomendamos adaptar os formulários convertidos utilizando as funcionalidades estandarte dos list box.