Главная страница
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.024 c
14-46961
NetBreaker666
2003-04-26 23:07
2003.05.15
Да, и есть здесь хоть кто-нибудь, кто когда-нибудь


3-46573
msoftware
2003-04-25 08:59
2003.05.15
INTERBASE & Autoincrement поля >>>


1-46746
ed
2003-04-30 18:24
2003.05.15
CreatePolygonRgn и динамический массив


6-46874
VanX
2003-03-19 10:50
2003.05.15
Срочно нужен компонент DialUp


14-46898
als
2003-04-28 15:52
2003.05.15
Ничего не пойму