Bonjour, je chercher a faire un drag'n drop d'une selection (texte) d'une page web, afin de la glisser dans un memo,
le but etant de faire + rapide qu'un copier/coller de cette meme séléction.
Une idée ?
Merci![]()
Bonjour, je chercher a faire un drag'n drop d'une selection (texte) d'une page web, afin de la glisser dans un memo,
le but etant de faire + rapide qu'un copier/coller de cette meme séléction.
Une idée ?
Merci![]()
D7/2007 - Asphyre 4.1
Bonjour, je me permets de relancer le sujet ayant moi-même besoin defaire des drags&drops depuis IE vers mon appli delphi.
Par la suite je devrais déterminer le type du fichier draggé (URL, texte, image, etc...) pour y appliquer des traitements en conséquence.
Si quelqu'un a la solution merci d'avance.
--
"Qui fait le malin tombe dans le ravin"
Finalement j'ai plus ou moins trouvé la solution que voicit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 unit F_DragDrop; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtnrs, StdCtrls, ActiveX, ComObj, ShellAPI, ComCtrls, ExtCtrls; type TfmMain = class(TForm, IDropTarget) paMain: TPanel; re: TRichEdit; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } function DragEnter(const dataObj: IDataObject;grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; stdcall; function DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; stdcall; function DragLeave: HResult; stdcall; function Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; stdcall; end; var fmMain: TfmMain; implementation {$R *.dfm} procedure TfmMain.FormCreate(Sender: TObject); begin OleInitialize(nil); OleCheck(RegisterDragDrop(Handle, Self)); end; procedure TFmMain.FormDestroy(Sender: TObject); begin RevokeDragDrop(Handle); OleUninitialize; end; function TFmMain.DragEnter(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; begin Result := S_OK; end; function TFmMain.DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; Var n : int64; Begin Result := S_OK; end; function TFmMain.DragLeave: HResult; begin Result := S_OK; end; function TFmMain.Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; var aFmtEtc: TFORMATETC; aStgMed: TSTGMEDIUM; pData: PChar; begin if (dataObj = nil) then raise Exception.Create('IDataObject-Pointer is not valid!'); with aFmtEtc do begin cfFormat := CF_TEXT; ptd := nil; dwAspect := DVASPECT_CONTENT; lindex := -1; tymed := TYMED_HGLOBAL; end; OleCheck(dataObj.GetData(aFmtEtc, aStgMed)); try pData := GlobalLock(aStgMed.hGlobal); re.Clear; re.SetSelTextBuf(pData); finally GlobalUnlock(aStgMed.hGlobal); ReleaseStgMedium(aStgMed); end; Result := S_OK; end; end.
--
"Qui fait le malin tombe dans le ravin"
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager