RProg |
Отправлено: 19.05.2005, 08:50 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 11
|
Ну не могу найти доки, примеры и исходники для создания WEB Brouserа. Шоб я сдох! Дайте плиз сылочки или свои примеры. Шлите на емейл если не втягость или выложите здесь.
Вообще Мне нужно проанализировать HTML страничку. Задача такая
Внешний вид странички:
CODE |
Привет!
здесь наши идеи. Группа №1
(Здесь эти идеи)
-----------------------------------------------------------
Привет от Гр №3
Вот наши соображения:
(пошли — пошли соображения и прочая галиматья)
-----------------------------------------------------------
Хай! Задолбал ты со своими проектами :)
Ну держи мою мысь.
Рысь
(Здесь он рожает свою мысь)
-----------------------------------------------------------
|
Сырец выглядит так (весьма примерно, приведенно само тело)
CODE |
<a1Start>
Привет!
здесь наши идеи. Группа №1
Итак мы считаем...
Ляля тополя...
...
<br>
!Здесь всякий мусор для форматирования странички
<A2Start>
Привет от Гр №3
Вот наши соображения:
Если посмотреть с точки зрения...
...
<br>
!Здесь всякий мусор для форматирования странички
<A3Start>
Хай! Задолбал ты со своими проектами :)
Ну держи мою мысь.
Рысь
В принципе проект не плох, но...
...
<br>
!Здесь всякий мусор для форматирования странички
<B1Start>
Одобряю (Кхе-хе-хе)
<br>
|
Я хочу имена группы выложить в TTreeView а их идеи в RichText или в броузере
CODE |
|||||||||||||||||||||||||||||||||||||||||||||||
/ | |
/ | |
/ TTreeView1| |
/ | |
/ | TRichEdit1 |
/ | или |
/ | Web element |
/ | |
/ | |
|||||||||||||||||||||||||||||||||||||||||||||||
|
Вообщем я думаю идея ясна.
ANStart это метка начала сообщения.
Тэг окончание
У одной группы может быть 20 или даже 40 идей — соображений
Т.е. нужно чтобы было видно только одну, допустим первую идею (они в теле тоже отмечены специально, не помню точно как но для примера
, итд). Просто если она длиная что бы не путалась с остальными (ну это я уже так для информации).
Может кто что посоветует в принципе?
Лично я хочу сделать так:
1) открываю файл
2) ищу стартовую метку
3) читаю пока не найду
4) Но как запихать это в Web element? Темповый файл создавать не хочу. Не серьезно как-то. Может я не прав.
Правда я не знаю вообще какой элемент надо использовать. Поэтому доки и ищу.
В Webе хочу сделать из-за того что ребята отсылают в HTML очень красиво оформленно (таблички, подсветки, графики итд)
Спасибо
RProg@mail.ru |
|
Rius |
Отправлено: 19.05.2005, 11:09 |
|
Мастер участка
Группа: Участник
Сообщений: 321
|
Честно говоря, нифига не понял.. Чем не устраивает TCppWebBrowser ?
|
|
RProg |
Отправлено: 20.05.2005, 04:04 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 11
|
Вообще ничем. Просто я не знал что можно использовать . Теперь буду копать с него THX |
|
RProg |
Отправлено: 20.05.2005, 06:06 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 11
|
Не пойму как работать с этим элементом.
Конкретнее:
1) Как загрузить в него допустим "C:\1.html"
2) Можно ли в него грузить не с файла а с потока или с переменной AnsiString например?
Похоже к TCppWebBrowser нужен еще один или несколько вспомогательных элементов.
А к TCppWebBrowser справки в Borlande лично у меня нет. Может я установил не все? |
|
GIZMO |
Отправлено: 20.05.2005, 08:42 |
|
Машинист паровоза
Группа: Участник
Сообщений: 174
|
QUOTE (RProg @ 20/05/2005, 06:06) | Не пойму как работать с этим элементом.
Конкретнее:
1) Как загрузить в него допустим "C:\1.html"
2) Можно ли в него грузить не с файла а с потока или с переменной AnsiString например?
Похоже к TCppWebBrowser нужен еще один или несколько вспомогательных элементов.
А к TCppWebBrowser справки в Borlande лично у меня нет. Может я установил не все? |
1. Воспользоваться методом TCppWEbBRowser::Navigate()
2. Воспользоваться IHTMLDocument2::write()
|
|
Rius |
Отправлено: 20.05.2005, 12:31 |
|
Мастер участка
Группа: Участник
Сообщений: 321
|
По Navigate примеров много, легко найдешь. А по записи из строки в памяти:
CODE | void __fastcall TFormMain::ShowHTML(const AnsiString &html, TCppWebBrowser *pBrowser)
{
IHTMLDocument2 *pHTMLDocument = NULL;
// TVariant URL;
// URL="about:blank";
// pBrowser->Navigate2(&URL, NULL, NULL, NULL, NULL);
if (SUCCEEDED(pBrowser->Document->QueryInterface(IID_IHTMLDocument2,(LPVOID*)&pHTMLDocument)))
{
if(pHTMLDocument!= NULL )
{
int Bounds[2] = {0,0};
Variant v = VarArrayCreate(Bounds, 1, varVariant);
AnsiString footer;
v.PutElement(html, 0); // this is your html string
// v.PutElement(" dhfds ", 1); // this is your html string
// v.PutElement(GetStringFromResourceID(IDS_STRING_0135) + Now(), 1); // this is your html string
pHTMLDocument->clear();
// wchar_t *wstr;
// pHTMLDocument->get_title(&wstr);
// WideString Tittle = WideString(wstr);
pHTMLDocument->write(PSafeArray(v.VArray));
// v.VArray
WideString pStr;
// pHTMLDocument->get_fileSize()
// pHTMLDocument->toString();
pHTMLDocument->close();
pHTMLDocument->Release();
// v.Clear();
}
}
}
|
примечание: у меня это работает, только если один раз при запуске программы вызвать страницу "about:blank" через Navigate
|
|
RProg |
Отправлено: 20.05.2005, 20:39 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 11
|
Спасибо буду пробовать. Если сработает я счастлив :) |
|
RProg |
Отправлено: 23.05.2005, 11:31 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 11
|
Не знаю почему, но у меня выдает "Access Violation". Вот код:
CODE |
IHTMLDocument2 *pHTMLDocument = NULL;
AnsiString html = "Hello HTML";
TCppWebBrowser *newBrowser;
newBrowser = CppWebBrowser1;
if (SUCCEEDED(newBrowser->Document->QueryInterface(IID_IHTMLDocument2,(LPVOID*)&pHTMLDocument)))
{
if(pHTMLDocument!= NULL )
{
int Bounds[2] = {0,0};
Variant v = VarArrayCreate(Bounds, 1, varVariant);
AnsiString footer;
v.PutElement(html, 0); // this is your html string
pHTMLDocument->clear();
pHTMLDocument->write(PSafeArray(v.VArray));
WideString pStr;
pHTMLDocument->close();
pHTMLDocument->Release();
}
} |
Ругается на CODE | if (SUCCEEDED(newBrowser->Document->QueryInterface(IID_IHTMLDocument2,(LPVOID*)&pHTMLDocument)))
|
Может из-за версии?
Borland Builder 5 Builsd 12.34 (ни каких сервис паков не ставил)
Ах да, подключил . По моему только он и подходит или хедр другой надо?
И еще, не обязательно грузить about:blank. Можно вообще все что угодно туда послать (или кого:). Это что-то вроде стартера для элемента. |
|
Rius |
Отправлено: 23.05.2005, 15:45 |
|
Мастер участка
Группа: Участник
Сообщений: 321
|
Вполне возможно из-за версии, у меня 6-й BCB.
Если страничка небольшая, попробуй протокол about:
CODE | navigate на url "about:<head>....</head><body>...</body>" |
|
|
RProg |
Отправлено: 28.05.2005, 17:24 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 11
|
Да ну его в баню. В среду поеду и куплю себе 6 Builder — давно пора :). И спокойно поработаю. |
|
GIZMO |
Отправлено: 31.05.2005, 11:05 |
|
Машинист паровоза
Группа: Участник
Сообщений: 174
|
QUOTE (RProg @ 28/05/2005, 17:24) | Да ну его в баню. В среду поеду и куплю себе 6 Builder — давно пора . И спокойно поработаю. |
Даже не думай. BCB6 — жирный, глючный тормоз. Только BCB5.
[QUOTE RProg]И еще, не обязательно грузить about:blank. Можно вообще все что угодно туда послать (или кого:). Это что-то вроде стартера для элемента[/QUOTE]
Ну всеже, кого-нибудь пошли, и Access Violation должен пропасть...
|
|
RProg |
Отправлено: 06.06.2005, 20:24 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 11
|
Вот черт!
Вообще я приболел и не мог на работу (и до инета) добратся. Прочитал огромное спарибо GIZMO и Rius. Rius за отличный пример, а GIZMO за то что мне глаза открыл. Я придурок. Просто раскоментировал
CODE |
TVariant URL;
URL="about:blank";
newBrowser->Navigate2(&URL, NULL, NULL, NULL, NULL);
|
И блин, все пошло. Тфу, придурок :(
И еще раз спасибо! |
|