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

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

Открыть диалог поиска текста в WebBrowser


X9 ©   (2008-06-21 20:36:00) 

Необходимо показать стандартный диалог поиска файла ActiveX-компонента IE. Пытаюсь выполнить ExecWB(OLECMDID_SHOWFIND, OLECMDEXECOPT_DODODEFAULT), но программа выдаёт ошибку "Попытка отменить конечное место переноса, которое не было зарегистрировано (Exception from HRESULT: 0x80040100 (DRAGDROP_E_NOTREGISTERED))", к тому же, в MSDN написано, что команда OLECMDID_SHOWFIND не должна использоваться. Но ведь, например, в DMClient такое окошко отображается.

Как быть?


Наиль   (2008-06-23 11:01:00) [1]

В DMCliente поиск выполняет компонент TEmbeddedWB:

procedure TEmbeddedWB.Find;
var
 vaIn, vaOut: Olevariant;
begin
 InvokeCmd(TRUE, HTMLID_FIND, 0, vaIn, vaOut);
end;


Этот компонент можно найти на просторах интернета.

ЗЫ
procedure TEmbeddedWB.InvokeCMD(InvokeIE: Boolean; Value1, Value2: Integer; var vaIn, vaOut: OleVariant);
var
 CmdTarget: IOleCommandTarget;
 PtrGUID: PGUID;
begin
 New(PtrGUID);
 if InvokeIE then PtrGUID^ := CLSID_WebBrowser else
   PtrGuid := PGUID(nil);
 if Document <> nil then
 try
   Document.QueryInterface(IOleCommandTarget, CmdTarget);
   if CmdTarget <> nil then
   try
     CmdTarget.Exec(PtrGuid, Value1, Value2, vaIn, vaOut);
   finally
     CmdTarget._Release;
   end;
 except end;
 Dispose(PtrGUID);
end;


Johnmen   (2008-06-21 23:05:00) [2]

Обратиться к авторам  DMClient?


Наверх

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