Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];

Вниз

Как перетащить ссылку из поля   Найти похожие ветки 

 
leonidus   (2003-07-02 23:34) [0]

Подскажите пожалуйста, как перетащить ссылку из поля "Адрес" Internet Explorer`а в мою программу (приемником должен быть ListBox).


 
Makhanev A.S.   (2003-07-02 23:42) [1]

uses
ddeman;

function GetURL(Service: string): string;
var
ClDDE: TDDEClientConv;
temp: PChar;
begin
Result := "";
//create a new DDE Client object
ClDDE := TDDEClientConv.Create(nil);
with ClDDE do
begin
SetLink(Service, "WWW_GetWindowInfo");
temp := RequestData("0xFFFFFFFF");
Result := StrPas(temp);
StrDispose(temp);
CloseLink;
end;
ClDDE.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
// the result should be something like:
// " http://www.swissdelphicenter.ch","SwissDelphiCenter.ch"
ShowMessage(GetURL("IExplore"));
{ ShowMessage(GetURL("Netscape")); }
end;

{**************************************}


// To have the locationurls from all running instances of Internet Explorer -
// including open folders and Windows Explorer - shown in a listbox.
// by http://www.euromind.com/iedelphi/

uses
shdocvw_tlb;

procedure TForm1.Button2Click(Sender: TObject);
var
x: Integer;
Sw: IShellWindows;
begin
sw := CoShellWindows.Create;
for x := 0 to SW.Count - 1 do
Listbox1.Items.Add((Sw.Item(x) as IWebbrowser2).LocationUrl);
end;


 
Almaz   (2003-07-03 00:19) [2]


> leonidus (02.07.03 23:34)
> Подскажите пожалуйста, как перетащить ссылку из поля "Адрес"
> Internet Explorer`а в мою программу (приемником должен быть
> ListBox).

Если я правильно я вас понял, то под словом "перетащить" имелась ввиду технология Drag"n"Drop ;)
Для ее реализации в данном случае необходимо воспользоваться функцией RegisterDragDrop и интерфейсом IDropTarget:

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)
Label1: TLabel;
ListBox1: TListBox;
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.ListBox1.Items.Add(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.


Удачи.


 
leonidus   (2003-07-03 18:23) [3]

Всем огромное спасибо.



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

Форум: "Основная";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
14-55828
Delphi 5.01
2003-06-28 09:14
2003.07.17
Word Document


3-55405
Kremen
2003-06-23 19:18
2003.07.17
Помогите с типом поля Calculated!


3-55429
Endi
2003-06-22 12:58
2003.07.17
Длинный DBCtrlGrid


7-55879
vf
2003-05-01 00:51
2003.07.17
Связать виртуальный и реальный мир


14-55724
AndyNik
2003-07-01 17:03
2003.07.17
Dalphi&Cache





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский