Nur aus Neugier, warum würde man sowas machen? Kann man nicht einfach den Datensätzen eine Positions-ID oder so geben und diese ggf. tauschen? Oder hab ich falsch verstanden, worum es geht (die Anzeige)?
Nun ich denke daß Harry, da er eine "einfache" Lösung bevorzugt, im Dataset herumfummelt, damit die Anzeige seinen Ansprüchen genügt. Das widerspricht zwar jeder Trennung von Daten und Anzeige aber dieser Lösungsweg ist für Datensensitive Komponenten wohl der offensichtliche.
Gruß
K-H
Wäre natürlich auch eine Möglichkeit, einen quasi User-sortierbaren Index hinzuzufügen. Diesen Index müsste ich aber auch speichern. Müsste also das Format der "Datenbank" (=einfache StringList, mit Feldtrennzeichen getrennt) ändern. Das wollte ich aber nicht aus Gründen der Rückwärtskompatibilität. Klar, könnte jetzt noch verschiedene Verrenkungen machen, um das alte Dateiformat bei der nächsten Installation des Programms durch das neue Datenformat der Datei zu ersetzten.
Aber warum sollte ich das machen, wenn es auch so geht.
Ich hatte hier in gewisser Hinsicht den Ansatz einer nicht sortierten Stringlist im Kopf, wo man ja auch per .exchange oder .move die einzelnen Zeilen / Datensätze an andere Positionen verschieben kann.
Ein Problem bezüglich Trennung von Daten und Anzeige sehe ich bei meinem Ansatz übrigens nicht. Denn es werden ja keine Daten im Grid gespeichert, ich ändere nur die unter dem Grid liegende Datenschicht, die Anzeige im Grid passt sich automatisch an.
Da es im vorliegenden Fall auch nur um eine lokale Verwaltung eines kleinen Datenbestandes geht, keine echte Datenbank dahinter liegt (benutze nur ClientDataset und Datasource) und somit auch keine Client-Server Abfragen oder ähnliches erforderlich sind, sehe ich hier kein Problem.
Lasse mich aber gerne eines Besseren belehren.