Вниз
Скачать: CL | DM;

Использование Drag&Drop между приложениями   Найти похожие ветки 

← →
BVK   (2003-03-13 22:22) [0]

Мастера, подскажите как используя Drag&Drop передать текст (его выделенные фрагменты)из Memo или WebBrowser одного приложения в Memo моей программы. Заранее благодарен...


← →
MBo ©   (2003-03-14 06:59) [1]

Drag"n"Drop Component Suite
Anders Melander
на torry.ru


← →
Дмитрий Баранов ©   (2003-03-14 09:54) [2]

см. в яндексе или королевстве Delphi IDropTarget, IDataSource, IDataObject
У меня такой простенький классик есть:

unit TDropEdit;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
AxCtrls, OleCtrls, StdCtrls, ExtCtrls, ComCtrls, COmObj, ActiveX;


type
TDragTarget = class(TInterfacedObject, IDropTarget)
private
FControl: TWinControl;
public
constructor Create(ATarget: TWinControl);
destructor Destroy; override;
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;

implementation

{ TDragEdit }

constructor TDragTarget.Create(ATarget: TWinControl);
begin
Self.FControl:=ATarget;
RegisterDragDrop(FCOntrol.Handle, Self);
end;

destructor TDragTarget.Destroy;
begin
RevokeDragDrop(FControl.Handle);
inherited;
end;

function TDragTarget.DragEnter(const dataObj: IDataObject;
grfKeyState: Integer; pt: TPoint; var dwEffect: Integer): HResult;
begin
dwEffect:=DROPEFFECT_COPY;
result:=S_OK;
end;

function TDragTarget.DragLeave: HResult;
begin
result:=S_OK;
end;

function TDragTarget.DragOver(grfKeyState: Integer; pt: TPoint;
var dwEffect: Integer): HResult;
begin
dwEffect:=DROPEFFECT_COPY;
result:=S_OK;
end;

function TDragTarget.Drop(const dataObj: IDataObject; grfKeyState: Integer;
pt: TPoint; var dwEffect: Integer): HResult;
var
Buffer : PChar;
Etc : TFormatEtc;
Medium : TStgMedium;
begin
Result := S_OK;
Etc.cfFormat := CF_TEXT;
Etc.ptd := nil;
Etc.dwAspect := DVASPECT_CONTENT;
Etc.lindex := -1;
Etc.tymed := TYMED_HGLOBAL;
try
OleCheck( dataObj.GetData(Etc, Medium) );
Buffer := GlobalLock(Medium.hGlobal);
SetWindowText(FCOntrol.Handle, Buffer);
GlobalUnlock(Medium.hGlobal);
ReleaseStgMedium(Medium);
except
Result := E_UNEXPECTED;
end;
end;

initialization
OleInitialize(nil);

end.

Далее в коде:
type
TfrmNews = class
...
public
{ Public declarations }
a1, a2, a3: TDragTarget;
...
end

...

procedure TfrmNews.FormCreate(Sender: TObject);
var CoNM: CoNewsmanager;
begin
try
...
a1:=TDragTarget.Create(mmText); // TEdit, TMemo


← →
BVK   (2003-03-14 22:29) [3]

Большое спасибо всем, особенно Дмитрию Баранову



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
9-46558
DWA
2002-11-30 16:08
2003.05.15
Поменять разрешение


14-46979
Scorpx
2003-04-27 11:57
2003.05.15
САЙТ ВОССТАНОВЛЕН!!!


1-46724
OOOoo
2003-04-29 08:39
2003.05.15
Закрытие exe из dll


1-46698
BoTToN!k
2003-05-03 14:52
2003.05.15
проблемма с консоль проектом...


1-46680
Александр из Минска
2003-04-30 16:24
2003.05.15
TStringGrid




   Наверх