![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Открыть диалог поиска текста в 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?