4D v12.4Gestão de objetos List Box |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v12.4
Gestão de objetos List Box
|
Comandos Prop. dos objetos | Objeto | Colunas | Título das colunas |
X | |||
OBJECT GET COORDINATES | X | ||
OBJECT SET FILTER | X | ||
OBJECT SET FORMAT | X | ||
OBJECT SET ENTERABLE | X | ||
OBJECT SET CHOICE LIST NAME | X | ||
OBJECT SET TITLE | X | ||
OBJECT SET COLOR | X | X | |
OBJECT SET RGB COLORS | X | X | |
OBJECT SET FONT | X | X | X |
OBJECT SET FONT SIZE | X | X | X |
OBJECT SET FONT STYLE | X | X | X |
OBJECT SET ALIGNMENT | X | X | X |
OBJECT Get alignment | X | X | X |
OBJECT SET VISIBLE | X | X | X |
OBJECT SET SCROLLBAR | X | ||
OBJECT GET BEST SIZE | X | X | X |
Notas:
É possível adiconar um método de objeto ao objeto list box ou a cada coluna da list box. Os métodos de objeto são chamados na seguinte ordem:
1. Método de objeto de cada coluna
2. Método de objeto do list box
O método de objeto da coluna recebe os eventos que ocorrem em seu título.
Quando o comando OBJECT SET VISIBLE é utilizado com um cabeçalho, é utilizado em todos os cabeçalhos del objeto List box, sem importar o título definido no comando. Por exemplo, a instrução OBJECT SET VISIBLE(*;"título3";False) ocultará todos os títulos do objeto List box ao qual pertence titulo3 e não unicamente este cabeçalho.
A função OBJECT Get pointer utilizada com a constante Object with focus ou Object current (antigas funções Focus object e Self) pode ser utilizada no método de objeto de um list box ou de uma coluna de list box.
Devolvem um ponteiro ao list box, a coluna(1) list box ou a variável do cabeçalho em função do tipo de evento de formulário. A seguinte tabela detalha este funcionamento:
Evento | Objeto foco | Objeto atual |
On Clicked | list box | coluna |
On Double Clicked | list box | coluna |
On Before Keystroke | coluna | coluna |
On After Keystroke | coluna | coluna |
On After Edit | coluna | coluna |
On Getting Focus | coluna ou list box (*) | coluna ou list box (*) |
On Losing Focus | coluna ou list box (*) | coluna ou list box (*) |
On Drop | list box source | list box (*) |
On Drag Over | list box source | list box (*) |
On Begin Drag Over | list box | list box (*) |
On Mouse Enter | list box (**) | list box (**) |
On Mouse Move | list box (**) | list box (**) |
On Mouse Leave | list box (**) | list box (**) |
On Data Change | coluna | coluna |
On Selection Change | list box (**) | list box (**) |
On Before Data Entry | coluna | coluna |
On Column Moved | list box | coluna |
On Row Moved | list box | list box |
On Column Resize | list box | coluna |
On Header Click | list box | cabeçalho |
On After Sort | list box | cabeçalho |
(*) Quando o foco se modifica dentro de um list box, se devolve a coluna um ponteiro. Quando o foco se modifica a nivel do formulário, se devolve um ponteiro ao list box. No contexto de um método de objeto de coluna, se devolve um ponteiro a coluna.
(**) Não executado no contexto de um método de objeto de coluna.
(1) Quando se devolve um ponteiro a uma coluna, o objeto ao qual se aponta depende do tipo do list box. Com um array de tipo list box, a função OBJECT Get pointer devolve um ponteiro ao array). O mecanismo de ponteiros de 4D permite conhecer o número do elemento do array modificado. Por exemplo, supondo que o usuário modificou a quinta fila da coluna col2:
$Column:=OBJECT Get pointer(Object with focus)
` $Column contem um ponteiro a col2
$Fila:=$Column-> `$Fila igual a 5
No caso de um list box de tipo seleção, a função OBJECT Get pointer devolve:
O comando OBJECT SET SCROLL POSITION (tema “Propriedades dos objetos") pode ser utilizada com um objeto de tipo list box. Esse comando permite deslocar as linhas da list box para mostrar a primeira linha selecionada ou uma linha específica.
O comando EDIT ITEM (tema “Gestão de entrada”) lhe permite passar a modo edição uma célula de um objeto list box.
Quando se aplica a um listbox em modo seleção, o comando REDRAW (tema "Interface do usuário") dispara a atualização dos dados mostrados na list box.
O comando Displayed line number (tema "Seleções") funciona no contexto do evento de formulário On Display Detail para um objeto list box.
Eventos de formulário específicos estão destinados a facilitar a gestão do list box, em particular com o relacionado às operações de arrastar e soltar e ordenar. Para maior informação, consulte a descrição do comando Form event.
O administrar o arrastar e soltar de dados em list boxes é compatível pelos comandos Drop position e DRAG AND DROP PROPERTIES. Estes comandos foram adaptados especialmente para os list boxes.
Tenha cuidado em não confundir arrastar e soltar com mover filas e colunas, realizado pelos comandos LISTBOX MOVED ROW NUMBER e LISTBOX MOVED COLUMN NUMBER.
A list box administra automaticamente a ordenação padrão de colunas em caso de clique no cabeçalho. Uma ordenação padrão é uma ordenação alfanumérica de valores da coluna, de forma alternada ascendente/descendente com cada clique. Todas as colunas sempre se sincronizam automaticamente.
Pode evitar as ordenações de usuário deselecionando a propriedade “Ordenável” do list box.
Automaticamente, o list box maneja automaticamente as ordenações padrão de colunas em caso de clique no cabeçalho. Uma ordenação é uma ordenação alfanumérica dos valores da coluna, alternadamente ascendente/descendente com cada clique sucessivo. Todas as colunas sempre são sincronizadas automaticamente.
Você pode proibir ordenar ao usuário padrão deselecionando a propriedade "Ordenável" para o listbox.
Nota: a propriedade “Ordenável” afeta apenas a ordenação do usuário padrão; o comando LISTBOX SORT COLUMNS não considera esta propriedade.
O valor da variável associada ao título da coluna lhe permite administrar informação adicional: a ordenação atual da coluna (leitura) e a visualização da flecha de ordenação.
É possível fixar o valor da variável (por exemplo, Titulo2:=2) para “forçar” a visualização da flecha de ordenação. A ordenação da coluna mesma não é modificada neste caso; está nas mãos do desenvolvedor como manejá-la.
A gestão de seleções é realizada de maneira diferente para os list box de tipo array e de tipo seleção.
• List box de tipo seleção: as seleções são administradas por um conjunto chamado "Highlight Set". Este conjunto é definido nas propriedades do list box. É mantido automaticamente por 4D: se o usuário seleciona uma ou mais filas no list box, o conjunto é atualizado imediatamente. Por outro lado, também é possível utilizar os comandos do tema "Conjuntos" com o propósito de modificar por programação a seleção da list box.
• List box de tipo array: o comando SELECT LISTBOX ROW pode ser utilizado para selecionar por programação uma ou mais filas do list box.
A variável associada ao objeto List box é utilizada para obter, fixar ou armazenar as seleções de filas do objeto.
Esta variável corresponde a um array de booleanos que é criada e mantida automaticamente por 4D. O tamanho deste array é determinado pelo tamanho do list box: contém o mesmo número de elementos que o array mais pequeno associado às colunas.
Cada elemento deste array contém True se a fila correspondente é selecionada e do contrário False. 4D atualiza os conteúdos deste array dependendo das ações do usuário. à inversa, você pode modificar o valor dos elementos deste array para modificar a seleção no list box.
Por outra parte, não é possível inserir ou apagar filas neste array; tampouco é possível digitar filas novamente.
Nota: o comando Count in Array pode ser utilizado para conhecer o número das filas selecionadas.
Por exemplo, este método permite inverter a seleção desta primeira fila do list box (tipo array):
ARRAY BOOLEAN(tBListBox;10)
` tBListBox é o nome da variável associada ao list box no formulário
If(tBListBox{1}=True)
tBListBox{1}:=False
Else
tBListBox{1}:=True
End if
É possível imprimir list boxes a partir de 4D v12. Estão disponíveis dos modos de impressão: modo pré-visualização, o qual pode permitir imprimir um list box como um objeto de formulário e o modo avançado, permite controlar a impressão do objeto list box mesmo dentro do formulário. Note que a aparência "Impressão" está disponível para os objetos list box no editor de formulários.
A impressão de um list box em modo pré-visualização consiste em imprimir diretamente o list box com o formulário que o contenha utilizando os comandos de impressão padrão ou o comando de menu Print. O list box é impresso como está no formulário. Este modo não permite controlar com precisão a impressão do objeto; em particular, não permite imprimir todas as linhas de um list box que contenha mais linhas do que possa mostrar.
Neste modo, a impressão dos list boxes é efetuada por programação, através do comando Print object. Portanto, só os list box presentes nos formulários projeto podem ser impressos em modo avançado. O comando LISTBOX GET PRINT INFORMATION é utilizado para controlar a impressão do objeto.
Neste modo:
Produto: 4D
Tema: List Box
Gestão de List Boxes Hierárquicas