LISTBOX GET CELL COORDINATES
LISTBOX GET CELL COORDINATES ( {* ;} objeto ; coluna ; linha ; esquerda ; superior ; direita ; inferior )
Parâmetro | Tipo | Descrição | |
---|---|---|---|
* | Operador | → | Se especificado = objeto é um nome de objeto (cadeia) |
objeto | any | → | Nome de objeto (se * for especificado) ou variável (se * for omitido) |
coluna | Integer | → | Número de coluna |
linha | Integer | → | Número de linha |
esquerda | Integer | ← | Coordenada esquerda do objeto |
superior | Integer | ← | Coordenada superior do objeto |
direita | Integer | ← | Coordenada direita do objeto |
inferior | Integer | ← | Coordenada inferior do objeto |
Esse comando não é seguro para thread e não pode ser usado em código adequado.
Descrição
O comando LISTBOX GET CELL COORDINATES devolve nas variáveis ou campos esq, sup, dir e inf as coordenadas (em pontos) da célula designada pelos parâmetros coluna e linha, no list box definido por * e objeto.
Se passar o parâmetro opcional *, indica que o parâmetro objeto é um nome de objeto (uma cadeia). Se não passar o parâmetro opcional *, indica que o objeto é um campo ou uma variável. Neste caso, passa uma referência de campo ou variável (campo ou variável de tipo de objeto unicamente) em vez de uma cadeia.
Por coerência com o comando OBJECT GET COORDINATES, a origem é a esquina superior esquerda do formulário que contém a célula. Além disso, as coordenadas devolvidas são teóricas; que levam em conta o estado de deslocamento do list box antes de que ocorra qualquer recorte. Como resultado, a célula pode ser não visível (ou só parcialmente) em suas coordenadas, e estas coordenadas podem estar fora dos limites do formulário (ou inclusive negativas). Para saber se a célula é visível (e que parte dela é visível) é necessário comparar as coordenadas devolvidas com as coordenadas do listbox, levando em conta as seguintes regras:
- Todas as células se cortam com as coordenadas de seu list box pai (como os devolvidos por OBJECT GET COORDINATES no list box).
- Os Sub-objetos cabeçalho e rodapé de página se mostram sobre o conteúdo da coluna: quando as coordenadas de uma célula se cruzam as coordenadas das linhas de cabeçalho ou rodapé de página, a célula não é mostrada nesta interseção.
- Os elementos das colunas bloqueadas são mostradas sobre os elementos das colunas deslocáveis: quando as coordenadas de um elemento em uma coluna deslocável cruzam as coordenadas de uma coluna bloqueada, então que não é mostrada nesta interseção.
Para mais informação, consulte a descrição do comando OBJECT GET COORDINATES.
Exemplo
Você quer desenhar um retângulo vermelho arredor da célula selecionada de um listbox:
OBJECT SET VISIBLE(*;"RedRect";False) //inicializar um retângulo vermelho
//o rectângulo é definido em algum lugar já sob a forma
LISTBOX GET CELL POSITION(*;"LB1";$col;$row)
LISTBOX GET CELL COORDINATES(*;"LB1";$col;$row;$x1;$y1;$x2;$y2)
OBJECT SET VISIBLE(*;"RedRect";True)
OBJECT SET COORDINATES(*;"RedRect";$x1;$y1;$x2;$y2)