Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как перетащить ссылки из MSIE в мою прогу? [D6, WinME, Win2k, WinXP]


Slava V. ©   (2002-09-26 11:40:00) 

Ничего не могу найти в сети по этому вопросу(примеров для файлов, а не для URL навалом, но это все не то), может хоть кто-то подскажет в каком направлении копать?


Nikolas SHmuS   (2002-09-29 01:32:00) [1]

Посмотри компонент

http://www.torry.net/vcl/system/draganddrop/swissexplorerdrop.zip

вроде должно подойти.......


Almaz   (2002-09-28 00:40:00) [2]


> Slava V. (26.09.02 11:40)
> Ничего не могу найти в сети по этому вопросу(примеров для
> файлов, а не для URL навалом, но это все не то), может хоть
> кто-то подскажет в каком направлении копать?

Вот пример:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ActiveX;

type
TDropTarget = class (TInterfacedObject, IDropTarget)
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;

TForm1 = class(TForm)
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
DropTarget: TDropTarget;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

function TDropTarget.DragEnter(const dataObj: IDataObject; grfKeyState: Longint;
pt: TPoint; var dwEffect: Longint): HResult;
begin
Result := S_OK;
end;

function TDropTarget.DragOver(grfKeyState: Longint; pt: TPoint;
var dwEffect: Longint): HResult;
begin
Result := S_OK;
end;

function TDropTarget.DragLeave: HResult;
begin
Result := S_OK;
end;

function TDropTarget.Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint;
var dwEffect: Longint): HResult;
var
Format: TFORMATETC;
Data: TSTGMEDIUM;
Buffer: PChar;
begin
with Format do
begin
cfFormat := CF_TEXT;
dwAspect := DVASPECT_CONTENT;
ptd := nil;
lindex := -1;
tymed := -1;
end;
Result := dataObj.GetData(Format, Data);
if (Result = S_OK) and (Data.tymed = TYMED_HGLOBAL) then
begin
Buffer := GlobalLock(Data.hGlobal);
Form1.Edit1.Text := Buffer;
GlobalFree(Data.hGlobal);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
if OleInitialize(nil) = S_OK then
begin
DropTarget := TDropTarget.Create;
RegisterDragDrop(Handle, DropTarget as IDropTarget);
end;
end;


procedure TForm1.FormDestroy(Sender: TObject);
begin
OleUninitialize;
end;

end.


Удачи.


Nikolas ShmuS   (2002-09-27 23:47:00) [3]

Ссылочку в Label (если правильно понял что необходимо)

ну а так вот:

TForm1.Label1Click
.....

ShellExecute((),"open"," http://www.zhart.tk","","",SW_SHOW);

так к примеру.


MBo   (2002-09-26 12:32:00) [4]

поищи в архивах, Almaz летом пример давал


Наверх

Титульная страница Поиск, карта сайта Написать письмо