Durante a fase de desenvolvimento, a detecção precoce de erros de sintaxe é importante para produzir código de qualidade. A verificação de código em tempo real é uma ajuda valiosa para os programadores. Não só melhora a eficiência, como também melhora a qualidade e aumenta a produtividade. Corrigindo erros imediatamente, pode concentrar-se no desenvolvimento funcional de sua aplicação, ao invés de em bugs irritantes que aparecem durante a compilação.
Com 4D 20 R8, temos o prazer de introduzir duas novas caraterísticas que transformarão a forma como trabalha.
- A primeira é a capacidade de associar uma classe com um formulário, permitindo a verificação de sintaxe com expressões como Form.myProperty.
- A segunda é uma verificação em tempo real de expressões na lista de propriedades, com uma descrição do erro ou aviso apresentado.
Associar uma classe a um formulário
Agora é possível associar uma classe de usuário a um formulário utilizando o novo atributo “Form class“. Este atributo permite-lhe escrever o objeto devolvido pelo comando Form permitindo a utilização de expressões como Form.myProperty. A classe de usuário pode ser do projeto anfitrião ou de um componente.
Instanciação automática em tempo de execução
Ao abrir um formulário, você pode passar um objeto para o comando DIALOG. Este objeto torna-se então acessível dentro do formulário através do comando Form.
O objeto passado para o comando DIALOG pode ser uma instância de uma classe. Veja como fazer isso:
var $h : Integer
var $o : cs.Person
$o :=cs.Person.new()
$h :=Open form window("FormWithClass")
DIALOG ("FormWithClass"; $o)
A partir da versão 4D 20 R8, se define a propriedade “Form class” no formulário sem passar um objeto ao comando DIALOG 4D automaticamente lida com a instanciação. Simplesmente escreva:
var $h : Integer
$h :=Open form window("FormWithClass")
DIALOG ("FormWithClass")
O comando Form devolve um objeto que é uma instância da classe “Person”. Pode verificar isto no formulário com o comando OB Instance of.
$n:=OB Instance of(Form; cs.Person)
Agora, você pode chamar uma função de classe simplesmente escrevendo: “Form.message()”.
Vantagens para o editor de código
Funcionalidade de autocompletar
O comando Form se beneficia do preenchimento automático no editor de código. Ao digitar “Form.”, 4D vai sugerir todas as propriedades e funções declaradas na classe associada. Não é mais necessário inverter duas letras no nome de uma propriedade ou usar uma letra minúscula em vez de uma letra maiúscula no nome de uma função.
Por exemplo, com nossa simples classe “Person” definida como segue:
property firstname : Text
property lastname : Text
property email : Text
Class constructor
This .firstname:=""
This .lastname:=""
This .email:=""
Function get fullname () : Text
return This .firstname+" "+This.lastname
Ao utilizar o comando Form num método de formulário, o editor de código oferece-lhe uma lista exata para completar o seu código:
Verificar a funcionalidade de sintaxe
Quando utiliza expressões do tipo “Form.myProperty” no método de formulário, ou nos métodos de objetos de formulário, beneficiará do poder do verificador de sintaxe.
Vejamos o exemplo da aula anterior. No código do método do formulário, nós:
- forçamos um número inteiro num atributo de texto,
- utilizamos um atributo desconhecido,
- atribuímos um número inteiro a um atributo computado de tipo texto.
Na imagem seguinte, pode ver que o editor de código identificou efetivamente erros ou avisos.
Vantagens para o editor de formulários
Verificação da sintaxe integrada na lista de propriedades
A verificação da sintaxe já não está limitada ao editor de código. Esta funcionalidade é estendida às expressões da lista de propriedades (como“Datasource” ou“Meta info expression“). Como resultado, receberá notificações imediatas de erros e avisos.
Não é necessário esperar pelos resultados da compilação para descobrir erros. Graças a esta funcionalidade, será informado logo na fase de edição.
Compilação
Naturalmente, se não tiver resolvido os novos erros diretamente, o compilador irá detectá-los durante o processo de compilação.
Diálogo do compilador
Todos os avisos e erros serão apresentados na janela de compilação. Se der duplo clique numa expressão de objeto de formulário, o formulário correspondente será aberto, destacando o objeto problemático e a sua propriedade na lista de propriedades.
Comando Compilar projeto
Em caso de falha na compilação, o comando Compile project devolve um objeto com avisos e erros. O comando também foi ampliado para devolver avisos ou erros detectados nas expressões de objeto de formulário.
{ "sucesso":falso, "errors":[{ "message": "Propriedade não declarada 'firstName' utilizada. (550.26)", "isError":false, "código":{ "type": "formObjectExpression", "formName": "Pessoa", "objectName": "InputFirstname", "propertyName": "dataSource", "file":"[object File]" } }] }
O que vem a seguir
Estas novas funcionalidades tornarão a escrita de código mais fácil e eficiente.
Não hesite em partilhar as suas experiências com estas melhorias. Os seus comentários são valiosos para nos ajudar a compreender como estas ferramentas o ajudam no dia a dia e para as adaptarmos melhor às suas necessidades.