| 4D View v14PV SET DRAG SIGNATURES | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D View v14
 PV SET DRAG SIGNATURES 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PV SET DRAG SIGNATURES ( area ; assinaturas ) | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| area | Inteiro longo |   | Área 4D View | |||||
| assinaturas | Array cadeia |   | 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 arrastarO 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
PV GET DRAG SIGNATURES
PV SET DROP SIGNATURES
	4D View Linguagem ( 4D View v11.4)
	4D View Linguagem ( 4D View v12)
	4D View Linguagem ( 4D v13)
	4D View Linguagem ( 4D View v14 R2)
	4D View Linguagem ( 4D View v14)
	4D View Linguagem ( 4D View v14 R3)
	4D View Linguagem ( 4D View v14 R4)