4D v16Ponteiros |
||
|
4D v16
Ponteiros
Ponteiros
Além das manipulações explicadas no vídeo, também deve levar em conta que: Usar um ponteiro é bastante fácil. A vantagem de seu uso é para fazer a programação mais genérica e adaptável. O conceito de ponteiro é simples e o usamos todos os dias ao falar. Na frase “meu cachorro está na casa”, se utilizam dois ponteiros. Si Paulo diz “coloque na gaveta”, ¿de qual gaveta está falando?A gaveta que Paulo indicou com o dedo. Referiu-se a uma gaveta que a outra pessoa vai “desapontar” (olhar para qual gaveta aponta o dedo de Paulo). Esta idéia simples funciona bem em 4D e permite substituir as gavetas com as tabelas, campos ou variáveis. Se eu pedir a 4D realizar uma pesquisa nesta tabela, primeiro é necessário definir que tabela consultar apontando para ela da seguinte forma: MiPuntero:=->[TABLA] Ao princípio, é possível que tenha alguns problemas com os ponteiros, mas logo descobrirá que são fáceis de implementar e que oferecem um grande poder.
Quando necessite administrar listas de ponteiros, então será a hora de olhar aos arrays de ponteiros. Lembre que também pode utilizar o comando Get pointer que lhe permite definir o nome dos ponteiros a partir de uma cadeia de caracteres. Por exemplo: Get pointer("MiVariable"+String($i)) Neste vídeo, vamos a aprender sobre os ponteiros e como otimizar sua programação e que sejam genéricos. Como vimos no exercício anterior, definir opções para cada ação (pesquisar, ordenar, etc) no método NAVIGATION_FUNCTIONS pode ser convertida rapidamente em algo chato. Portanto temos que orientar a ação em direção a tabela que corresponde à página selecionada. Neste caso, é mais fácil indicar só uma vez ao princípio do método a tabela a utilizar. Podemos armazenar esta indicação em uma variável e depois usar esta variável nos comandos. Logicamente, não podemos dizer que uma variável é igual a uma tabela, estes objetos são completamente diferentes e têm um conteúdo completamente diferente. Já aprendemos que uma variável pode ser de tipo inteiro, numérico, texto, imagem, etc.. e contém um valor do tipo correspondente. Uma tabela não é um "conteúdo" como é um valor numérico. A solução é utilizar uma variável de tipo ponteiro. Assim que vamos a definir esta variável, que é uma variável local: C_POINTER($TablePointer) Esta variável existe em memória. Agora, para assinalar um valor, vamos a utilizar os seguintes tipos de sintaxes: $TablePointer:=->[INTERVENTIONS] Assim como temos visto para as variáveis, temos:
E, mais adiante, em qualquer lugar onde a tabela Interventions deveria ter sido utilizada, vamos poder substituí-la com esta variável, que teremos que "desapontar" neste caso. A vantagem é que todo o código está aqui, que é um simples copiar colar com só uma mudança da tabela, se pode substituir por estas 2 mesmas linhas de código, sempre que temos previamente definido a tabela à que deve apontar dependendo do número de página. Assim que temos que obter o código que foi escrito antes, e aqui nos indicam que:
Dito isto, já não é necessário provar as páginas aqui e portanto, já não é útil ter este programa duplicado. Temos uma primeira programação aqui que nos permite:
O mesmo princípio aplica para as pesquisas:
Quando chegamos aqui, o ponteiro será um ponteiro a "Technicians" e, portanto vamos a procurar na tabela "Technicians". O número de registros encontrados é o número de registros que se encontram na tabela "Technicians".
|
PROPRIEDADES
Produto: 4D
HISTÓRIA
ARTICLE USAGE
Autoformação ( 4D v16) |