Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.15;
Скачать: CL | DM;

Вниз

Frames в WebBrowser   Найти похожие ветки 

 
R@nger ©   (2003-03-15 10:42) [0]

Здравствуйте! Очень нужна помощь. Как в TWebBrowser обратиться к фреймам? Там есть такое свойство frames возвращает коллекцию фреймов. У этой коллекции есть метод item, который по идее должен возвращать отдельный фрейм. Так вот: какой тип должен быть у фрейма??
Буду благодарен за маленький примерчик.

Еще на MSDN нашел это:

// Assume pWin is a valid IHTMLWindow interface pointer for the main window

VARIANT frameRequested;
VARIANT frameOut;
IHTMLFramesCollection2* pFramesCol;
IHTMLWindow2* pRightFrameWindow;
IHTMLDocument2* pRightDoc;

frameRequested.vt = VT_BSTR;
frameRequested.bstrVal = L"rightframe";

hr = pWin->get_frames(&pFramesCol);
hr = pFramesCol->item(&frameRequested, &frameOut);

hr = frameOut.pdispVal->QueryInterface(IID_IHTMLWindow2, (void**)&pRightFrameWindow);
hr = pRightFrameWindow->get_document(&pRightDoc);

Кто в C разбирается мож переведете на Паскаль?
Заранее благодарен.


 
ga3 ©   (2003-03-15 15:57) [1]

uses activex, mshtml_tlb;
......
...
function GetFrame(WB: IWebbrowser2; FrameName: string): IWebbrowser2;
var
OleContainer: IOleContainer;
enum: IEnumUnknown;
TempUnk: IUnknown;
Fetched: system.PLongint;
FrameNo: integer;
Coll: HTMLElementCollection;
begin
With WB do
begin
if Assigned(document) then
begin
Coll:=HTMLElementCollection(HTMLDocument(Document).All.Tags("FRAME"));
for FrameNo:=0 to Coll.length-1 do
if HTMLFrameElement(Coll.item(FrameNo,varEmpty)).name=FrameName then break;
Fetched := 0;
OleContainer := Document as IOleContainer;
OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enum);
Enum.Skip(FrameNo);
Enum.Next(1, TempUnk, Fetched);
Result := TempUnk as IWebbrowser2;
end else Result := nil;
end;
end;

потом работаешь с результатом этой функции как с обычным WebBrowser


 
Джек ©   (2003-03-17 14:09) [2]

Спасибо за нужную функцию.
Но есть такая проблема.
Как определить, что нужный фрейм (по индексу) загружен?
Чтобы не ждать полной загрузки всего документа.



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

Текущий архив: 2003.05.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
7-47018
asdf622
2003-03-20 17:08
2003.05.15
Очистка памяти. Как сделать?


3-46603
Тимохов
2003-04-23 18:15
2003.05.15
Текущая версия ADO


14-47003
Hint
2003-04-28 12:37
2003.05.15
Исходники за деньги


1-46824
Сан Саныч
2003-05-02 08:50
2003.05.15
Как кзнать цвет парент-а ?


1-46822
NP-237
2003-04-30 15:49
2003.05.15
D2 и DWORD