Dicas

Uma classe para facilitar o tratamento dos seus subformulários

No fórum, foram feitos vários pedidos, dicas ou perguntas sobre a apresentação de uma mensagem, uma ampulheta ou alguns elementos de interface no primeiro plano de um formulário, esbatendo o resto. É possível criar este tipo de interface com subformulários e formulários de chamada. O código pode tornar-se complicado se estiver a trabalhar com um formulário de várias páginas.

Para facilitar o seu trabalho, Vincent De Lachaux preparou uma classe para simplificar a gestão dos subformulários apresentados num formulário de várias páginas. Trata do carregamento do subformulário em tempo real, controlando-o a partir de um worker e reposicionando-o se o formulário principal for redimensionado. Pode concentrar-se nos seus diálogos sem se preocupar com a mecânica.

Dicas blank

Dicas e truques para as suas aplicações 4D – Edição de Agosto

Tradução automática de Deepl

por Add Komoncharoensiri, Director de Serviços Técnicos da 4D Inc

Aqui vamos nós com outro conjunto de dicas e truques.

Como sabem, a Base de Conhecimento 4D é uma biblioteca de informação sobre a tecnologia 4D onde são activamente publicadas dicas técnicas semanais e técnicas mensais. Se falhou as últimas dicas sobre a KB, tudo bem; aqui está uma compilação das últimas semanas.

Este post no blogue cobre 16 dicas:

Produto blank

Comunicação de formulários e subformas facilitada!

Tradução automática de Deepl

Começando com 4D v19 R5, a capacidade de associar uma variável a uma subforma enriqueceu as possibilidades de interfaces e comunicação entre formulários e subformas. Os meios de comunicação são agora simplificados por dois novos comandos: Diga olá a OBJECT Get subform container value e OBJECT SET SUBFORM CONTAINER VALUE.

Posto Convidado blank

Listar caixa tipoahead: Pesquisa intuitiva da lista

Tradução automática de Deepl

pelo autor convidado Chris Belanger, um desenvolvedor 4D do Canadá

List box typeahead (um método para procurar progressivamente) não é uma característica nativa das caixas de listagem. No entanto, pode facilmente implementar esta funcionalidade com alguma codificação criativa. Neste post do blogue, vou demonstrar a técnica juntamente com um exemplo de base de dados e um documento exaustivo explicando os detalhes passo a passo.

O resultado final está resumido no GIF abaixo, Ilustra duas “pesquisas”. Uma para E-L-L-I-O-T, depois outra (depois de uma ordenação de colunas) para H-A-N-N-A-H:

Produto
Uncategorized
blank

No tamanho… No tamanho… No tamanho… No tamanho… No tamanho…

Tradução automática de Deepl

A pensar como criar uma interface de utilizador agradável e dinâmica? Normalmente, quando um formulário é redimensionado, os objectos do formulário cujas propriedades de dimensionamento horizontal ou vertical são definidas para se mover ou crescer, são automaticamente redimensionados. Em alguns casos (por exemplo, gestão mais fina da interface de utilizador), os programadores optam por gerir o tamanho e a posição dos objectos de formulário por programação. Para o fazer, verificam o evento “no redimensionamento” que é desencadeado dentro do método do formulário. Mas o que acontece quando o formulário contém um ou mais subformulários? A muitos níveis? Este post no blog dá-lhe as respostas!

Produto blank

Passagem de dados entre formulários

Tradução automática de Deepl

Não seria óptimo se pudesse simplesmente abrir um formulário e passar-lhe alguns parâmetros para inicializar os seus objectos de formulário? Que tal ser capaz de voltar a processar os dados, depois de terem sido modificados pelo utilizador? 4D v16 R5 torna a sua codificação muito mais fácil, simplificando grandemente as comunicações com formulários.

Até agora, quando queria exibir dados (não provenientes da própria base de dados, mas computados ou externos) a múltiplos utilizadores, tinha duas opções: ou escrever código complexo para lidar com a exibição de dados em múltiplos processos, ou criar tantos formulários quantos forem necessários com um monte de variáveis globais. Mas sabe que as variáveis globais não são uma forma optimizada de codificação, de um ponto de vista de memória.

Portanto, livre-se do seu código complexo e das variáveis globais! Com 4D v16 R5 pode simplesmente ligar um objecto ao seu formulário e utilizá-lo internamente com o novo comandoForm . Indolor…e poderoso!