4D View v16PV SET DRAG SIGNATURES |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D View v16
PV SET DRAG SIGNATURES
|
PV SET DRAG SIGNATURES ( Bereich ; Signatur ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
Bereich | Lange Ganzzahl |
![]() |
4D View Bereich | |||||
Signatur | Array String |
![]() |
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
Produkt: 4D View
Thema: PV Drag and Drop
Nummer:
15935
Erstellt: 4D View 6.8
4D View Programmiersprache ( 4D View v16)