Bekommt man mit Lazarus 2.2.0 (und GTk2?) kein vernünftiges Drag & Drop mehr hin...? Ob dmManual oder dmAutomatic, mit DragObject oder ohne, der Cursor bleibt bei mir immer auf crNoDrop, sowohl über dem Ursprungscontrol als auch über dem Ziel - OnDragOver wird zwar ausgelöst, aber das Setzen von Accept bewirkt auch hier keine Änderung des Cursors. Nur wenn ich im Ursprungscontrol ebenfalls OnDragOver einrichte und Accept = True setze, bekomme ich überhaupt den Dragcursor. Der sich dann allerdings auch nicht mehr auf crNoDrop ändert, wenn ich das Control verlasse und die Maus über andere Controls bewege, die kein OnDragOver haben. Simpelstes Testprojekt anbei.
Oder was übersehe ich hier mal wieder?
Drag & Drop mit 2.2.0
-
- Beiträge: 289
- Registriert: Mo 24. Aug 2020, 14:16
- OS, Lazarus, FPC: Ubuntu Xenial 32, Lazarus 2.2.0, FPC 3.2.2
- CPU-Target: i386
Drag & Drop mit 2.2.0
- Dateianhänge
-
DragTest.zip
- (2.09 KiB) 50-mal heruntergeladen
Re: Drag & Drop mit 2.2.0
Abgesehen davon, dass man nicht "MouseMove" (wird X-Fach ausgeführt) sondern "MouseDown" für BeginDrag verwenden sollte, hast du recht.
Auf Qt geht's, auf GTK nicht.
Da kannst du einen Bug Report schreiben: https://gitlab.com/groups/freepascal.or ... ate=opened
https://wiki.lazarus.freepascal.org/How ... bug_report
Lazarus 2.3.0 rmain-2_3-288-gd5fe15d448 FPC 3.2.2 x86_64-linux-gtk2
EDIT: Etwas in der Art ist schon gemeldet: https://gitlab.com/freepascal.org/lazar ... sues/39522
Auf Qt geht's, auf GTK nicht.
Da kannst du einen Bug Report schreiben: https://gitlab.com/groups/freepascal.or ... ate=opened
https://wiki.lazarus.freepascal.org/How ... bug_report
Lazarus 2.3.0 rmain-2_3-288-gd5fe15d448 FPC 3.2.2 x86_64-linux-gtk2
EDIT: Etwas in der Art ist schon gemeldet: https://gitlab.com/freepascal.org/lazar ... sues/39522
-
- Beiträge: 289
- Registriert: Mo 24. Aug 2020, 14:16
- OS, Lazarus, FPC: Ubuntu Xenial 32, Lazarus 2.2.0, FPC 3.2.2
- CPU-Target: i386
Re: Drag & Drop mit 2.2.0
Vielen Dank für die Rückmeldung. Das mit dem MouseMove sehe ich nicht so eng, der wird bei einer Drag-Operation ohnehin noch ganz anders in Anspruch genommen, und wenn die mal begonnen hat wird da nicht mehr viel mehr ausgeführt als in TControl.MouseMove auch ohne eine solche.