Saltar para o conteúdo principal
Versão: Próximo

METHOD RESOLVE PATH

METHOD RESOLVE PATH ( rota ; tipoMetodo ; prtTabela ; nomObjeto ; nomObjetoForm {; *} )

ParâmetroTipoDescrição
rotaTextRota a resolver
tipoMetodoIntegerSeletor tipo de objeto
prtTabelaPointerReferência de tabela
nomObjetoTextNome de formulário ou método de base
nomObjetoFormTextNome de objeto de formulário
*OperadorSe passado = o comando se aplica à base local quando se executa desde um componente (parâmetro ignorado fora deste contexto)

Esse comando não é seguro para thread e não pode ser usado em código adequado.

Descrição

O comando METHOD RESOLVE PATH analisa a rota de acesso interna passada no parâmetro rota e devolve seus diferentes componentes nos parâmetros tipoMetodo, ptrTabela, nomObjeto e nomObjetoForm.

No parâmetro tipoMetodo devolve um valor que indica o tipo do método. Pode comparar este valor com as seguintes constantes do tema Design Object Access:

ConstanteTipoValorComentário
Path database methodInteiro longo2
Path project formInteiro longo4Rota dos métodos formulário projeto e de todos seus métodos objeto. Exemplos:
[projectForm]/myForm/{formMethod}
[projectForm]/myForm/button1
[projectForm]/myForm/mylist
[projectForm]/myForm/button1
Path project methodInteiro longo1Nome do método.
Exemplo: MeuMétodoProjeto
Path table formInteiro longo16Rota dos métodos formulário tabela e de todos seus métodos objeto. Exemplos:
[tableForm]/table_1/Form1/{formMethod}
[tableForm]/table_1/Form1/button1
[tableForm]/table_1/Form1/mylist
[tableForm]/table_2/Form1/mylist
Path triggerInteiro longo8Rota dos triggers da base. Exemplos:
[trigger]/tabela_1
[trigger]/tabela_2

Nota: O comando não verifica se o método realmente existe no banco de dados ou projeto. Um erro só é gerado se um nome de tabela inválido for passado

O parâmetro ptrTabla contém um ponteiro a uma tabela da base quando a rota referencia um método formulário tabela ou um trigger.

O parâmetro nomObjeto contém:

  • um nome de formulário se a rota referencia um formulário tabela ou projeto.
  • um nome de método base se a rota referencia um método base.

O parâmetro nomObjetoForm contém um nome de objeto de formulário se a rota referencia um método objeto.

Se o comando se executa desde um componente, considera por padrão que a via designa um método do componente. Se passado o parâmetro *, se considera que a via designa um método da base local.

Exemplo 1

Resolução de uma rota de método base:

 var $methodType : Integer
 var $tablePtr : Pointer
 var $objectName : Text
 var $formObjectName : Text
 
 METHOD RESOLVE PATH("[databaseMethod]/onStartup";$methodType;$tablePtr;$objectName;$formObjectName)
  // $methodType: 2
  // $tablePtr: Nil pointer
  // $objectName: "onStartup"
  // $formObjectName: ""

Exemplo 2

Resolução de uma rota de método de formulário tabela:

 var $methodType : Integer
 var $tablePtr : Pointer
 var $objectName : Text
 var $formObjectName : Text
 
 METHOD RESOLVE PATH("[tableForm]/Table1/output1/myVar1";$methodType;$tablePtr;$objectName;$formObjectName)
  // $methodType: 16
  // $tablePtr: -> [Table1]
  // $objectName: "output1"
  // $formObjectName: "Btn1"

Ver também

METHOD Get path