4D View v16PV SET DRAG SIGNATURES |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D View v16
PV SET DRAG SIGNATURES
|
PV SET DRAG SIGNATURES ( area ; assinaturas ) | ||||||||
Parâmetro | Tipo | Descrição | ||||||
area | Inteiro longo |
![]() |
Área 4D View | |||||
assinaturas | Array string |
![]() |
Array de assinaturas | |||||
O comando PV SET DRAG SIGNATURES define o conteúdo do array assinaturas como assinaturas de "arrastar" para a area.
As assinaturas são cadeias alfanuméricas com conteúdo livre. A longitude máxima de uma assinatura é de 32 caracteres.
Estas são as propriedades da área, definidas utilizando o comando PV SET PROPERTY, que permite indicar as possibilidades de uma área 4D View e as opções relacionadas com arrastar e soltar:
Uma vez arrastar e soltar esteja autorizado, pode interagir com duas áreas (que podem ser a mesma) com a condição de que as áreas contenham ao menos uma assinatura comum de arrastar para a área fonte e de soltar para a área objetivo.
O evento de arrastar e soltar, será interceptado pelo comando PV ON EVENT.
O seguinte exemplo ilustra um arrastar e soltar entre duas áreas 4D View. Para começar, definimos as assinaturas e o comportamento das áreas, por exemplo, ao mudar de formulário:
ARRAY TEXT($DDSignatureArray;1)
$DDSignatureArray{1}:="Signature_1"
PV SET AREA PROPERTY(SourceArea;pv drag trigger;pv trigger on alt click) `alt-clic para arrastar
PV SET AREA PROPERTY(SourceArea;pv drag allowed;pv DD multiple cells)
PV ON EVENT(SourceArea;pv on drag;"DragDropMethod")
PV SET DRAG SIGNATURES(SourceArea;$DDSignatureArray)
PV SET AREA PROPERTY(TargetArea;pv drop allowed;pv DD single cell+
pv DD adjacent cells+pv DD multiple cells)
PV SET AREA PROPERTY(TargetArea;pv drop mode;pv drop replace only)
PV ON EVENT(TargetArea;pv on drop;"DragDropMethod")
PV SET DROP SIGNATURES(TargetArea;$DDSignatureArray) `As mesmas assinaturas que arrastar
O método de projeto DragDropMethod será chamado quando se execute um arrastar com alt-clique ou quando ocorre um soltar em uma área objetivo:
C_LONGINT($1) `Referencia da área 4D View
C_LONGINT($2) `Evento
C_LONGINT($3) `Código da tecla (modificar)
C_LONGINT($4) `Número da coluna
C_LONGINT($5) `Número da linha
C_LONGINT($6) `Código ASCII da tecla
C_POINTER(SourceAreaPointer;TargetAreaPointer) `Não há onde conservar entre duas chamadas de retorno
C_BLOB($blob) `Porta papéis temporal de arrastar e soltar
C_LONGINT($currentColumn;$currentRow) `Coordenadas da célula atual
C_LONGINT($destinationColumn;$destinationRow) `Coordenadas da célula onde ocorrerá o soltar
Case of
:($2=pv on drag)
PV GET DRAG SOURCE($1;SourceAreaPointer) `De onde viemos?
:($2=pv on drop)
PV GET DROP TARGET($1;TargetAreaPointer) `Para onde vamos?
$blob:=PV Copy to blob(SourceAreaPointer->) `Copia no porta papéis
$destinationColumn:=PV Get drop info(TargetAreaPointer->;pv drop column)
`Destino....
$destinationRow:=PV Get drop info(TargetAreaPointer->;pv drop row) `...coordenadas
PV GET CURRENT CELL(TargetAreaPointer->;$currentColumn;$currentRow)
`Colar a área atribuída
PV GOTO CELL(TargetAreaPointer->;$destinationColumn;$destinationRow)
PV PASTE FROM BLOB(TargetAreaPointer->;$blob;1;1;1;1)
`Restabelecimento da célula atual uma vez realizada a operação
PV GOTO CELL(TargetAreaPointer->;$currentColumn;$currentRow)
End case
Produto: 4D View
Tema: PV Arrastar e soltar
Número
15935
Criado por: 4D View 6.8
4D View Linguagem ( 4D View v16)