4D View v16

PV SET DRAG SIGNATURES

Home

 
4D View v16
PV SET DRAG SIGNATURES

PV SET DRAG SIGNATURES 


 

PV SET DRAG SIGNATURES ( Bereich ; Signatur ) 
Parameter Typ   Beschreibung
Bereich  Lange Ganzzahl in 4D View Bereich
Signatur  Array String in Array Signaturen

Der Befehl PV SET DRAG SIGNATURES setzt den Inhalt des Arrays Signatur als "drag" Kennung für Bereich.

Signatur ist ein alphanumerischer String mit beliebigem Inhalt. Er darf max. 32 Zeichen lang sein.
Diese Eigenschaften werden mit den Befehl PV SET AREA PROPERTY definiert. Sie ermöglichen, dem 4D View Bereich Drag and Drop Optionen zuzuweisen:

Ist Drag and Drop zugelassen, können zwei Bereiche interagieren, vorausgesetzt, sie enthalten mindestens eine gemeinsame Signatur, um Drag im Quellbereich und Drop im Zielbereich auszuführen. Wie für das Drag and Drop Ereignis kann die Aktion durch den Befehl PV ON EVENT abgefangen werden.

Nachfolgendes Beispiel zeigt Drag and Drop zwischen zwei 4D View Bereichen. Sie legen zuerst die Definition und das Verhalten der Bereiche fest, z.B. beim Ändern eines Formulars:

 ARRAY TEXT($DDSignatureArray;1)
 $DDSignatureArray{1}:="Signatur_1"
 
 PV SET AREA PROPERTY(Quellbereich;pv drag trigger;pv trigger on alt click)
  `Alt-Klick für Drag
 PV SET AREA PROPERTY(Quellbereich;pv drag allowed;pv DD multiple cells)
 PV ON EVENT(Quellbereich;pv on drag;"DragDropMethod")
 PV SET DRAG SIGNATURES(Quellbereich;$DDSignatureArray)
 
 PV SET AREA PROPERTY(Zielbereich;pv drop allowed;pv DD single cell+
 pv DD adjacent cells+pv DD multiple cells)
 PV SET AREA PROPERTY(Zielbereich;pv drop mode;pv drop replace only)
 PV ON EVENT(Zielbereich;pv on drop;"DragDropMethod")
 PV SET DROP SIGNATURES(Zielbereich;$DDSignatureArray`Gleiche Signatur wie für Drag

Die Projektmethode DragDropMethod wird aufgerufen, wenn Drag mit der Tastenkombination Alt-Klick ausgeführt wird oder im Zielbereich ein Drop stattfindet:

 C_LONGINT($1`Referenz auf 4D View Bereich
 C_LONGINT($2`Ereignis
 C_LONGINT($3`Zusatztaste
 C_LONGINT($4`Spaltennummer
 C_LONGINT($5`Zeilennummer
 C_LONGINT($6`ASCII-Wert des Zeichens
 
 C_POINTER(ZeigerQuellbereich;ZeigerZielbereich)
  `Zeiger auf die 4D View Bereiche
 C_BLOB($blob`Temporäre "Zwischenablage" für Drag&Drop
 C_LONGINT($currentColumn;$currentRow`Koordinaten der aktuellen Zelle
 C_LONGINT($destinationColumn;$destinationRow`Koordinaten für Drop-Aktion
 Case of
    :($2=pv on drag)
       PV GET DRAG SOURCE($1;ZeigerQuellbereich) `Woher kommen wir?
 
    :($2=pv on drop)
       PV GET DROP TARGET($1;ZeigerZielbereich) `Wohin gehen wir?
 
       $blob:=PV Copy to blob(ZeigerQuellbereich->) `In die "Zwischenablage" kopieren
       $destinationColumn:=PV Get drop info(ZeigerZielbereich->;pv drop column`Ziel....
       $destinationRow:=PV Get drop info(ZeigerZielbereich->;pv drop row`...Koordinaten
       PV GET CURRENT CELL(ZeigerZielbereich->;$currentColumn;$currentRow)
  `In den Zielbereich setzen
       PV GOTO CELL(ZeigerZielbereich->;$destinationColumn;$destinationRow)
  `Setze in zugewiesenen Bereich ein
       PV PASTE FROM BLOB(ZeigerZielbereich->;$blob;1;1;1;1)
  `Wieder auf die aktuelle Zelle setzen
       PV GOTO CELL(ZeigerZielbereich->;$currentColumn;$currentRow)
 End case



Siehe auch 

PV GET DRAG SIGNATURES
PV SET DROP SIGNATURES

 
EIGENSCHAFTEN 

Produkt: 4D View
Thema: PV Drag and Drop
Nummer: 15935

 
GESCHICHTE 

Erstellt: 4D View 6.8

 
ARTIKELVERWENDUNG

4D View Programmiersprache ( 4D View v16)