TAdvEdit issues

I have a problem with TAdvEdit. I try to allow the user to drag and drop text into the Field.

With Microsoft Word, this works flawlessly. I drop the text into the field and the text is inserted at the desired place.

With Adobe Reader this not works. A "No"-Cursor are displayed and it's not possible to drop the selected text from Adobe Reader into the AdvEdit-Field.

Are there any solutions for this behaviour?

I assume you refer to the OleDropTarget capability. If so, the question is if Adobe Reader works as OLE drop source for plain text as this is what TAdvEdit accepts? It could be more an Adobe Reader issue than a TAdvEdit issue.

Yes, the OleDropTarget capability. And I tried it in Word to insert. Word says, it's possible to insert it as "Unformatted Text" so I think, Adobe reader send it in a text format.

I try to debug TAEDropTarget.DragEnter, and it seems that Result := HasFormat(CF_UNICODETEXT) gives false. So I think it's a problem with the format of the dropped OLE Data.

I tried to change the method as this way:

function TEnumFormats.HasText : boolean;
begin
  Result := HasFormat(CF_UNICODETEXT) or HasFormat(CF_TEXT);
end;

and yes, now it accepts the input from Adobe reader (but the drop itself not works, because of another place in the component).

So I think it's a Problem of TAEDropTarget. In Delphi with Unicode (XE7 for example) all CF_TEXT are ignored.

Are you doing ctrl-drag or drag? It could be Adobe is sensitive to only allowing ctrl-drag.

Yes, both. Nothing helps.

It is unclear what is causing this issue then. When accepting CF_TEXT, we can ole drag & drop this way too here.

Yes, I think Adobe reader don't use the Unicode-Clipboard. Only the ANSI-Text-Clipboard. So this format is not available and is not accepted.

It is unclear what Adobe uses. We do not have this installed here and we'll need to allocate time to install this on a virtual machine as we do not install this software on regular developer machines here.

Ok, I think we made a own solution of this problem, because we know where to correct it.