DBGrid Zeilen Verschieben

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
mr.mc.mauser
Beiträge: 33
Registriert: Di 8. Jun 2010, 19:38

DBGrid Zeilen Verschieben

Beitrag von mr.mc.mauser »

Hallo,

ich würde gerne folgendes Raalisieren:
es gibt eine Tabelle (wirklich nur als Beispiel)

Code: Alles auswählen

ID|Name|Sortierung|Qualität
---------------------------
5 |ARD |1         | Gut 
4 |ZDF |2         | Toll
1 |PRo7|3         | Naja
3 |SAT1|4         | Es geht
2 |RTL |5         | Lieber nicht
Jetzt würde z.b gerne RTL auf Platz 2 Verschieben.

Das Verschieben an sich ist nicht mein Problem, nur würde ich das gerne Per Drag / Drop in einem DB Grid machen !
Eine Lösung über Buttons (Ganz nach Vorne, 1 hoch, 1 runter, Ganz nach unten) habe ich schon.
Nur eben per Drag drop da finde ich nichts (Mit Listen ist ein schönes Beispiel im Lazarusbuch), und hab auch keine Idee wie ich es machen soll :-)

Gruß
Robert

Bora4d
Beiträge: 290
Registriert: Mo 24. Dez 2007, 13:14
OS, Lazarus, FPC: WinXP-Pro-Sp3, Xubuntu 12.04, (Laz 1.1-SVN Mai2012, FPC 2.6.1 / 2.6.0-Linux)
CPU-Target: AMD64X2

Re: DBGrid Zeilen Verschieben

Beitrag von Bora4d »

Hier ist ein Bespiel:
\lazarus\examples\dragimagelist

Kein Grid aber Prinzip ist dasselbe. Nach dem Drop bekommst du Tabellenzeile und Spalte mit:
MouseToCell
oder
MouseCoord

Das Ereignis OnDragOver kannst du benutzen um aktulle Drop-Position zu markieren, d.h. zu zeichnen. Am besten oberhalb von Zielzeile mit XOR-Stift dicke Linie zeichnen, dann hast du wenig zu tun.

Du kannst auch das anschuen:
lazarus\components\lazcontrols\extendednotebook.pas

Das ist die Editor-PageControl von Lazarus da wird auch Drag&Drop und Dropzielmarkieren benutzt.

Antworten