Zeilen verschieben im Grid



Hallo,

als Ergänzung zum Thread Grid.KeyPress-Event hier die
Ursache für meine Aufgabe:

In meinen Grids können Datensätze mit <Strg>+<Auf>
oder <Strg>+<Ab> verschoben werden. Zum Beispiel:

* gültigen Datensatz eine Position nach unten schieben
CASE m.nKeyCode = 50 .AND. m.nShiftAltCtrl = 1 .and. m.lValid
SCATTER TO aOldRecord
SKIP
IF !EOF() .AND. <Zusatzbedingung z. B. für eine Relation>
SCATTER TO aNewRecord
GATHER FROM aOldRecord
SKIP -1
GATHER FROM aNewRecord
SKIP
ELSE
SKIP -1
ENDIF

Das funktioniert leider nicht sicher. In einer Datenumgebung
mit 1:n:m-Relation wird in dem 'm'-Grid öfter der aktuelle
Datensatz nicht verschoben, sondern kopiert.

Wirken sich Datensatzoperationen auf die Darstellung aus,
dass evtl. weitere Methoden aufgerufen werden? Ich setze
zum Anfang zur Sicherheit .LockScreen=.T.

Für der Interpreter zwischen den einzeln compilierten Zeilen
und deren Ausführung diversen weiteren Code aus? Kann ich
gegebenenfalls Code ohne Interrupts ausführen? Habe ich in
dem Code-Fragment oben einen 'typischen' Fehelr?

Gruß

Torsten

.