Version 11 (Geändert)
Drop position {(SpaltenNummer)} Zahl
Parameter | Typ | Beschreibung | |
SpaltenNummer | Lange Ganzzahl | Spaltennummer der Listbox oder | |
-1 wenn Drop außerhalb der letzten Spalte erfolgt | |||
Funktionsergebnis | Zahl | Zahl (array/list box) oder | |
Position (hierarchische Liste) oder | |||
Position in String (text/combo box) | |||
des Zieleintrags oder -1, wenn Drop | |||
außerhalb des letzten Array Elements | |||
oder Listeneintrags erfolgt. |
Beschreibung
Die Funktion Drop position findet in einem "komplexen" Zielobjekt die Stelle, an die ein Objekt per Drag&Drop-Technik bewegt wurde.
Sie verwenden Drop position bei einem Drag&Drop Ereignis, das in einem Array, einer Listbox, einer hierarchischen Liste oder einem Textfeld auftritt.
Ist das Zielobjekt ein Array, gibt die Funktion eine Elementnummer zurück.
Ist das Zielobjekt eine Listbox, gibt die Funktion eine Zeilennummer zurück. In diesem Fall gibt die Funktion im optionalen Parameter SpaltenNummer die Nummer zurück, wo Drop erfolgt ist.
Ist das Zielobjekt eine hierarchische Liste, gibt die Funktion die Position des Eintrags zurück.
Ist das Zielobjekt ein Text vom Typ Variable oder Feld, oder eine Combobox, gibt die Funktion die Position des Zeichens innerhalb des Strings zurück.
Die Funktion gibt in allen Fällen -1 zurück, wenn das Quellobjekt außerhalb des letzten Elements bzw. Eintrags des Zielobjekts bewegt wurde.
Rufen Sie Drop position bei einem Ereignis in einem Array, einer Listbox, einer Combobox, einer hierarchischen Liste oder einem Text auf, das kein Drag&Drop Ereignis ist, gibt die Funktion ebenfalls -1 zurück.
Wichtig: Ein Formularobjekt nimmt bewegte Daten nur an, wenn die Eigenschaft dropfähig zugewiesen ist. Außerdem muss die dazugehörige Objektmethode für On Drag Over und/oder On Drop aktiviert sein, damit diese Ereignisse durchgeführt werden.
Beispiele
1. Siehe Beispiele für den Befehl DRAG AND DROP PROPERTIES.
2. Im folgenden Beispiel soll eine Liste bezahlter Beträge nach Monat und Person aufgeteilt werden. Das wird per Drag&Drop aus einem rollbaren Bereich ausgeführt.
Die Objektmethode der Listbox enthält folgenden Code:
Case of :(Form event=On Drag Over) DRAG AND DROP PROPERTIES($source;$arrayrow;$processnum) If ($source=Get pointer("SA1")) `Wenn Drop vom rollbaren Bereich kommt $0:=0 Else $0:=-1 `Drop ist abgelehnt End if :(Form event=On Drop) DRAG AND DROP PROPERTIES($source;$arrayrow;$processnum) $rownum:=Drop position($colnum) If ($colnum=1) BEEP Else Case of `Gezogene Werte hinzufügen : $colnum=2 arrJohann{$rownum}:=arrJohann{$rownum}+SA1{$arrayrow} : $colnum=3 arrMark{$rownum}:=arrMark{$rownum}+SA1{$arrayrow} : $colnum=4 arrPeter{$rownum}:=arrPeter{$rownum}+SA1{$arrayrow} End case DELETE FROM ARRAY(SA1;$arrayrow) `Bereich aktualisieren End if End case
Referenz
DRAG AND DROP PROPERTIES, Einführung in Drag and Drop.
Drag and Drop Data between 4D and Excel