Entwickler-Ecke
Datenbanken - Drag & Drop bei Tabellen
Indeterminatus - Fr 13.09.02 21:21
Titel: Drag & Drop bei Tabellen
Hallo!
Ich habe folgendes Problem: Ich habe ein Mistkübel-Symbol gezeichnet und auf meinem Formular zusammen mit einem TDBGrid-Element positioniert.
Wenn der Benutzer eine markierte Spalte auf den Mistkübel zieht, soll dieser Tabelleneintrag gelöscht werden.
Das ist soweit auch gar kein Problem ... nur ... wie fange ich Drag & Drop-bei einem DBGrid ab? Mit onMouseOver funktioniert das nicht so gut, weil er dafür nur den Tabellenhintergrund (also alles, was nicht Zelle und nicht Bildlaufleiste ist ... ) vorsieht, jedoch nicht die Spalte selber ...
Schalte ich DragMode auf dmAutomatic um, habe ich das Problem, dass bei jedem kleinsten Klick auf eine Spalte Drag&Drop gestartet wird ... ich weiß, dass mit BeginDrag( False ) eine Mausbewegung von ca. 5 Pixeln vorausgesetzt wird, damit der Drag-Vorgang gestartet wird, nur wie bekomme ich ein Ereignis beim Betreten einer Spalte ?
Mit onCellClick funktioniert das auch nicht, weil der Benutzer nur einmal darauf klicken braucht und damit sofort (trotz Immediate-Flag auf False bei BeginDrag) in den Drag-Modus wechselt ...
Für Ratschläge bin ich jederzeit offen *gg* ...
Indeterminatus.
löschi - Mo 06.01.03 20:01
Titel: Draggen
HI Habe dein Beitrag erst jetzt gelesen. War selber auf suche nach lösung. Habe da was gefunden was dir vielecht weiterhelfen könnte.
In den Interfaceabschnitt:
Quelltext
1: 2:
| var StartX, StartY: Integer; |
im ereignis:
Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.DBGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin StartX := X; StartY := Y; end; |
und im ereignis:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if ssLeft in Shift then { prüfen, ob Maustaste gedrückt ist } begin if Y > StartY then begin dbgrid1.BeginDrag(false) end end; end; |
(07.01. 09:54 Tino) Code-Tags hinzugefügt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!