Script do Lado do Cliente

Uma das funcionalidades avançadas do uniGUI é a capacidade de escrever manipuladores em JavaScript para eventos do lado do cliente — ou seja, adicionar código JS para eventos Ext JS de controles do uniGUI. Ext JS é um framework JavaScript completo com um conjunto rico de componentes. Ext JS possui sua própria hierarquia de objetos; assim como objetos Delphi, cada componente Ext JS deriva de um objeto pai.

Algumas observações:

  • JavaScript suporta padrões que permitem hierarquias de objetos e comportamento semelhante à herança, mas a visibilidade de membros difere do Object Pascal: as chamadas propriedades e métodos privados ainda podem ser visíveis em classes filhas e acessíveis a partir de instâncias de objetos.

  • Requisitos para scripts do lado do cliente no uniGUI:

    • Conhecimento razoável de JavaScript (sintaxe similar a C/Java).

    • Familiaridade com a API da biblioteca Sencha Ext JS.

    • Você ainda pode escrever código do lado do cliente com conhecimento mínimo de JS/Ext JS para tarefas simples.

Abaixo está um fluxo de trabalho simples mostrando como adicionar um manipulador de evento do lado do cliente a um TUniButton.

1

Coloque um TUniButton no seu MainForm

Adicione um componente TUniButton ao seu MainForm.

Coloque um TUniButton no MainForm

Posicionamento do TUniButton no MainForm.

2

Abra ExtEvents no Object Inspector

No Object Inspector, selecione a ClientEvents propriedade, então dê um duplo clique na ExtEvents subpropriedade para abrir o editor de eventos JavaScript do uniGUI.

No Object Inspector dê duplo clique em ExtEvents

O editor de eventos JavaScript do uniGUI lista os eventos Ext JS disponíveis para o controle.

3

Escolha um evento Ext JS e adicione seu manipulador

No editor de eventos, no lado esquerdo você verá todos os eventos Ext JS disponíveis associados ao TUniButton. O canto superior esquerdo exibirá Ext.button.Button — o componente Ext JS usado pelo TUniButton. Dê duplo clique em um evento (por exemplo, click) para abrir um manipulador de evento e começar a digitar seu código JavaScript personalizado.

No editor JavaScript escolha o evento 'click' e dê duplo clique.
4

Acesse o controle uniGUI a partir do código do lado do cliente

Para acessar um objeto uniGUI no cliente, use o nome do owner e o nome do objeto na forma .. Os nomes devem corresponder exatamente aos identificadores declarados no Delphi (sensíveis a maiúsculas/minúsculas). Por exemplo, um botão chamado UniButton1 owned by MainForm é acessado como:MainForm.UniButton1Uma vez que você tenha a referência do lado do cliente, pode chamar quaisquer métodos Ext JS disponíveis para o componente Ext correspondente. Embora UniButton1 seja uma instância TUniButton do lado do servidor, MainForm.UniButton1 seja uma instância do lado do cliente do Ext.button.Button component.Exemplo: alterar a legenda do botão em tempo de execuçãoO Ext.button.Button class expõe métodos como setText() para alterar a legenda do botão em tempo de execução. Use o método a partir do seu manipulador do lado do cliente. Por exemplo, chamando:MainForm.UniButton1.setText('New Caption');atualizará o texto do botão. Note que JavaScript é sensível a maiúsculas/minúsculas e os nomes dos controles devem corresponder exatamente a como foram declarados no Delphi.Execute a aplicação e testeExecute a aplicação e clique no botão para ver o manipulador do lado do cliente em ação.