4D Write lhe permite executar operações de arrastar e soltar em uma mesma área 4D Write, entre duas áreas 4D Write ou entre uma área 4D Write e uma área 4D.
Arrastar e soltar podem ser utilizados por padrão (modo estandarte) ou por programação.
Por padrão, 4D Write oferece uma gestão automática estandarte de arrastar e soltar, baseada no deslocamento ou cópia de texto ou de imagens: uma seleção de texto ou uma imagem se pode mover utilizando o mouse.
Quando é inserida uma imagem em uma área 4D Write usando arrastar e soltar, automaticamente é colado no texto.
Os dados se movem quando se executa o arrastar e soltar dentro uma ou duas áreas 4D Write, ou seja, se eliminam da área original. Se somente deseja copiar os dados, mantenha pressionada a tecla Ctrl (Windows) ou Comando (Mac OS) durante a operação.
Com este tipo de arrastar e soltar, não é necessária nenhuma programação específica; somente têm que aplicar as propriedades “arrastar” e “Soltar” quando queira arrastar e soltar dentro de formulários 4D (ver mais a frente).
Pode arrastar e soltar dados entre áreas 4D Write e objetos 4D.A exceção dos BLOBs, todos os tipos de campos e de variáveis 4D podem ser soltadas em áreas 4D Write e vice-versa. Serão inseridos automaticamente na área 4D Write como texto ou imagens de acordo a seu tipo original.
Atenção: Para arrastar dados de texto de um campo ou variável 4D em uma área 4D Write, deve manter pressionada a tecla Alt (Windows) ou Opção (Mac OS) durante a operação.
Tenha em consideração que não é possível arrastar e soltar uma seleção de texto de uma área 4D a 4D Write, só pode ser copiado o conteúdo do objeto. No caso das listas hierárquicas, somente é copiada a referencia da lista. Para poder trabalhar com o conteúdo da lista, deve utilizar os comandos de arrastar e soltar de 4D.
- Em 4D, se deseja arrastar e soltar objetos entre uma área 4D Write e um objeto 4D, a propriedade “Arrastar” deve ser selecionada para cada objeto que deva ser arrastado e soltado..
- Se a área 4D Write está incluída em um formulário, a propriedade “Soltar” tem que ser selecionada para a área se é necessário receber objetos 4D ou elementos provenientes de outras áreas 4D Write.
A propriedade “Arrastar” deve ser selecionada se os elementos da área necessitam ser arrastados. - Para as janelas externas 4D Write, arrastar e soltar está ativo por padrão. Deve utilizar o comando WR SET AREA PROPERTY para controlar arrastar e soltar.
O arrastrar e soltar padrão de 4D Write permite configurar interfaces intuitivas e geralmente, contribui a uma melhor ergonomia. Entretanto, em alguns casos, pode que deseje personalizar estes mecanismos, particularmente para: - Utilizar arrastar e soltar desde outros objetos de formulário (listas hierárquicas, áreas de deslocamento, etc.).
- Controlar o efeito de um arrastar e soltar, por exemplo, para copiar os dados arrastados a vários lugares diferentes.
Neste caso, deve combinar os comandos de gestão de arrastar e soltar de 4D com os de 4D Write.
Em primeiro lugar, deve estar seguro de que os eventos de formulário On Drag Over e/ou On Drop foram selecionados para os objetos utilizados.
Pode estabelecer as propriedades de arrastar e soltar para a área 4D Write utilizando os comandos WR GET AREA PROPERTY e WR SET AREA PROPERTY.
Se a área 4D Write está incluída em um formulário, pode utilizar os eventos de formulário On Drag Over e/ou On Drop do objeto área incluído; se é uma janela externa, deve administrar especificamente os eventos com o comando WR ON EVENT.
Se deseja controlar com precisão o tipo dos objetos 4D, deve utilizar o comando 4D DRAG AND DROP PROPERTIES. Os comandos 4D lhe permitem executar qualquer tipo de ação em resposta a um arrastar e soltar.
No caso de arrastar e soltar entre duas áreas 4D Write, pode facilmente averiguar a área desde a qual os dados foram arrastados utilizando o comando WR GET DRAG SOURCE.
Pode conhecer a área na qual o objeto 4D foi solto utilizando o comando WR GET DROP TARGET bem como a posição exata do ponto de inserção quando o objeto foi soltado (comando WR GET DROP INFO): área (cabeçalho, rodapé de página, corpo) e localização do cursor.