Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
1-46731
unreger
2003-05-03 13:50
2003.05.15
как различать ошибки одного класса (EADOException, напр.)


1-46788
Начинака
2003-05-01 13:34
2003.05.15
ListView в runtime ...


3-46595
Remis
2003-04-19 01:19
2003.05.15
Нужно создать Menu


1-46725
qqqqq0001
2003-05-04 20:30
2003.05.15
Tfinddialog


3-46649
Rise
2003-04-24 13:56
2003.05.15
UpdateSQL И Query




   Наверх