[Lazarus] Generalized DragDrop
Hans-Peter Diettrich
DrDiettrich1 at aol.com
Mon Jan 24 11:49:36 CET 2011
michael.vancanneyt at wisa.be schrieb:
>>> I was thinking about something non-trivial, of course.
>>
>> Please specify what "non-trivial" use you have in mind, and what
>> results you expect to see in this very early implementation stage
>> (proof of concetpt).
>
> Drop a piece of text from wordpad on a TMemo. The text should be
> inserted at
> the drop point.
You know that a TMemo is a platform specific control, with accordingly
platform specific behaviour? If you want the described behaviour
implemented in code, a label or panel could be used as well.
If you want a TMemo or other standard widget react as designed, then
okay, this should be made work in the LCL.
>> You miss the really essential point: the interface between the drag
>> manager and the drag object.
>
> I am not missing anything, I am just saying that putting everyting in the
> base drag object is not a good decision. I'm not interested in the
> implementation details such as dragperformer and whatnot.
Me2 ;-)
I only wanted to point out that the *current* LCL implementation is not
the best one, and that putting the current performer code into the basic
drag object types will allow to add any kind of drag sources (e.g.
external ones). We already have dedicated DragObject classes for local
drag-drop and drag-dock, and inter-application dragging can be handled
in another class.
> I'm interested in how the end-user (the application programmer) sees DnD.
> Namely: he can re-use his existing knowledge, there are simply some extra
> descendants of TDragObject that implement external file DND and
> Inter-application DND, all the rest goes through the same events/methods
> that exist now.
The DragObjects will invoke the appropriate methods of the involved
controls, e.g. DragOver and DragDrop for a drop source, and DockOver and
DockDrop for a dock source.
> How this is accomplished in the background is not so relevant to me; I'm
> sure that the people involved will solve it in any way they see fit.
Yes, of course, and that's why we currently discuss how to extend
dragging in the best (transparent) way.
DoDi
More information about the Lazarus
mailing list