delphi 控件 TEmbeddedWB 實現超級拖拽 (super Drag&Drop OR inline Drag&Drop)
//處理超級拖拽
function TForm1.DropEvent(const dataObj: IDataObject;
grfKeyState: Integer; pt: TPoint; var dwEffect: Integer): HRESULT;
var
aFmtEtc : TFORMATETC;
aStgMed : TSTGMEDIUM;
pData : PChar;
begin
if (dataObj = nil) then
raise Exception.Create('IDataObject-Zeiger Error !');
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);
// Text pData = 拖拽的URL
//Memo1.Text := pData;
CreateNewTabBrowser( strPas(pData)); //打開一個新的標籤
finally
GlobalUnlock(aStgMed.hGlobal);
ReleaseStgMedium(aStgMed);
end;
Result := S_OK;
end;
function TForm1.DropEvent(const dataObj: IDataObject;
grfKeyState: Integer; pt: TPoint; var dwEffect: Integer): HRESULT;
var
aFmtEtc : TFORMATETC;
aStgMed : TSTGMEDIUM;
pData : PChar;
begin
if (dataObj = nil) then
raise Exception.Create('IDataObject-Zeiger Error !');
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);
// Text pData = 拖拽的URL
//Memo1.Text := pData;
CreateNewTabBrowser( strPas(pData)); //打開一個新的標籤
finally
GlobalUnlock(aStgMed.hGlobal);
ReleaseStgMedium(aStgMed);
end;
Result := S_OK;
end;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.