Escreva os seus próprios métodos para objectos

Tradução automática de Deepl

Um novo comando está à sua disposição, permitindo-lhe utilizar fórmulas no seu código. Pode agora encapsulá-las em objectos e chamá-las quando necessário. Não há mais necessidade de escrever o seu código como texto. Agora pode simplesmente passar a sua fórmula no seu comando e já está! Isto é uma grande adição, uma vez que o seu código não é texto, pode beneficiar do destaque da sintaxe e de todas as outras funcionalidades avançadas do editor de código!

Encapsular uma fórmula num objecto

Com a Formula é muito simples encapsular uma fórmula num objecto:

$f:=Formula(ALERT("Hello world"))

E claro, porque a fórmula está encapsulada num objecto, pode encapsulá-la numa propriedade de um objecto e criar os seus próprios métodos de objectos encapsulados:

$f:=New object
$f .message:=Formula(ALERT("Hello world"))
$f .message() // Display alert dialog box with the message "Hello world"

Se quiser passar parâmetros para a sua fórmula, basta usar $1, $2 … como nos seus métodos:

$f:=New object
$f .message:=Formula(ALERT("Olá "+$1)")
$f .message("John")
// Display alert dialog box with the message "Hello John"

Ou se quiser usar o valor de um atributo de um objecto, o comando This comando é a resposta:

$f:=New object
$f .text:="Hello World"
$f .message:=Formula(ALERT(This.text))
$f .message()
// Display alert dialog box with the message "Hello world"

Finalmente, pode usar um método como fórmula:

$person:=New object
$person .firstName:="John"
$person .lastName:="Smith"
$person .greeting:=Formula(Greeting )
$g :=$person.greeting("olá")
// $g:="hello John Smith"
$g:=$person.greeting("olá")
// $g:="hi John Smith"

Com o comando Greeting método:

$0:=$1+" "+This.firstName+" "+This.lastName

Pode encontrar outros exemplos de como utilizar Formula neste IDH:

HDI_NewFormula

Chamando a sua fórmula

Também pode executar um objecto de fórmula sem o definir como propriedade de outro objecto, utilizando o call() e apply() métodos.

$f:=Formula(ALERT(String($1( +" "+$2)))
$f .call(nulo; "Olá"; "mundo")
$f .apply(nulo;New collection ("Olá"; "mundo"
) //formula.apply object methods

Encapsular uma fórmula num objecto a partir de um fio

Há uma forma de utilizar uma versão de texto de uma fórmula para criar um método com o Formula from string comando:

$textFormula:=Request("Por favor digite uma fórmula")
If (ok=1)
$f :=Formula from string($textFormula)
ALERT ("Resultado = "+String($f.call ()))
End if

Fabrice Mainguené
- Proprietário do produto ->p>Fabrice Mainguené juntou-se à equipa do Programa 4D em Novembro, 2016. Como Proprietário do Produto, está encarregado de escrever as histórias dos utilizadores, traduzindo-as depois para especificações funcionais. O seu papel é também o de assegurar que a implementação da funcionalidade entregue vai ao encontro das necessidades do cliente.Após a obtenção da licenciatura em Informática no CNAM, Fabrice juntou-se a uma pequena empresa editora de software como programador Windev. Depois trabalhou para diferentes empresas nas áreas da indústria e comércio como programador Windev e web developer, bem como como consultor técnico sobre novas funcionalidades.