<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo alle,
Ich versuche, ein Drag-and-Drop-Verhalten für zwei Listenfelder in JSL zu implementieren. Grundsätzlich versuche ich, das Drag-and-Drop-Verhalten, das bereits für colListBox-Objekte existiert, für normale Listenfelder zu reproduzieren, d. Ich habe das gewünschte Verhalten für die empfangende Dropbox erfolgreich implementiert, habe jedoch Probleme mit der Quell-Dropbox. Grundsätzlich bin ich mir nicht sicher, wie ich das gewünschte Verhalten umsetzen soll. Das Beste, was mir einfällt, besteht darin, die Set-Click-Funktion für das übergeordnete Mausfeld des Listenfelds deaktiviert zu lassen, das Ziehen zu aktivieren und den folgenden Code in die Funktionen << set drag begin und << set drag end einzufügen:
<< Set Drag Begin(
Function( {this, clickpt},
If( N Items( (this << child) << Get Selected ) == 0,
(this << child) << Set Selected(1);
0;
,//Else
test = ( (this << child) << Get Selected );
test[1];
);
);
);
und das
<< Set Drag End(
Function( {this, clickpt, how},
If( how == "move",
(this << child) << Remove Selected;
)
);
);
Dies bedeutet jedoch, dass einzelne Klicks nicht funktionieren, um ein Element im Listenfeld auszuwählen. Ein Benutzer müsste doppelklicken, andernfalls wird das erste Element ausgewählt. Das ist nicht ideal, aber es ist alles, was ich zum Laufen bringen konnte. Für Hilfe oder Hinweise auf weitere Informationen hierzu wären wir sehr dankbar.
Zweitens: Manchmal, wenn ich etwas aus dem ersten Listenfeld ziehe, wird das von mir gezogene Element manchmal nicht gelöscht. Das passiert nur sehr zeitweise, aber ich habe keine Ahnung, warum es passiert oder wie ich es beheben kann. Danke.
Entschuldigung, dass ich nicht früher zurückkomme. Ich wurde zu anderen Projekten hingezogen und hatte eine Zeit lang keine Gelegenheit, JSL noch einmal zu besuchen. Das hat bei mir super funktioniert. Auch wirklich gute Kommentare. Ich frage mich nur, ob es im Internet weitere Dokumentation zu MouseBox gibt? Ich hatte keinen großen Erfolg damit, es aufzuspüren und würde mich über weitere Informationen über die Mechanik von MouseBox, Drop-Commit usw. freuen. Prost!
Ich habe ein Skript erstellt Hier