| imho.ws |
![]() |
|
|
|
# 21 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
Как это нет каких-то вещей??? STD там что-ли гдето используется ???
Выкладывай, чтоли... не обещаю, но может поковыряюсь )Кстати, что есть в твоем понимании слово шаблон и что за C++, они под винду разные бывают... надеюсь не вижла... |
|
|
|
|
# 22 | ||||
|
Member
Регистрация: 21.08.2003
Адрес: Россия
Пол: Male
Сообщения: 388
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
Цитата:
Цитата:
__________________
The Man Who Sold The World (© Nirvana) So What! (© Metallica) |
||||
|
|
|
|
# 23 |
|
Member
Регистрация: 21.08.2003
Адрес: Россия
Пол: Male
Сообщения: 388
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Вот код:
Код:
// Введен URL или адрес HTML файла и нажата клавиша Enter
void __fastcall TForm1::ComboBox1KeyPress(TObject *Sender,
char &Key)
{ if (Key == VK_RETURN)
{ Key = 0;
if (ComboBox1->Text == "") return;
WideString URL = (WideString)ComboBox1->Text;
BSTR Headers = NULL;
TVariant Flags = {0}, vTargetFrameName = {0},
vPostData = {0}, vHeaders = {0};
LPCTSTR PostData = Edit1->Text.c_str();
UINT cElems = lstrlen(PostData);
LPSTR pPostData;
Headers = SysAllocString
(L"Content-Type: application/x-www-form-urlencodedrn");
V_VT(&vHeaders) = VT_BSTR;
V_BSTR(&vHeaders) = Headers;
LPVARIANT pvPostData = vPostData;
if (pvPostData)
{ VariantInit(pvPostData);
LPSAFEARRAY psa = SafeArrayCreateVector(VT_UI1, 0, cElems);
if (!psa) return;
SafeArrayAccessData(psa, (LPVOID*)&pPostData);
memcpy(pPostData, PostData, cElems);
SafeArrayUnaccessData(psa);
V_VT(pvPostData) = VT_ARRAY | VT_UI1;
V_ARRAY(pvPostData) = psa;
}
CppWebBrowser1->Navigate(URL, &Flags, &vTargetFrameName,
&vPostData, &vHeaders);
}
}
Поясню: этот код обрабатывает строку, введенную для открытия. В качестве нее может быть адрес в сети или на локальный HTML файл.
__________________
The Man Who Sold The World (© Nirvana) So What! (© Metallica) |
|
|
|
|
# 24 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
Значит так:
VK_RETURN - это константа равная 13, а в нашем случае тип должен быть Char. return - просто выход из процедуры, я бы написал вместо вот так: raise Exception.Create('Не введен URL'); c_str() - сишная строка (по-моему с 0 в конце)... можно просто объявить PostData строкой и сунуть туде данные Edit1.Text; Могу ошибаться )) с Сpp не очень.
|
|
|
|
|
# 26 |
|
Member
Регистрация: 21.08.2003
Адрес: Россия
Пол: Male
Сообщения: 388
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
ЧересЧеловек
Спасибо. Это я знаю. У меня проблемы с переводом кода Си++ в Делфи /7y3uK А как бить вот с этим? VariantInit(pvPostData); LPSAFEARRAY psa = SafeArrayCreateVector(VT_UI1, 0, cElems); if (!psa) return; SafeArrayAccessData(psa, (LPVOID*)&pPostData); memcpy(pPostData, PostData, cElems); SafeArrayUnaccessData(psa); V_VT(pvPostData) = VT_ARRAY | VT_UI1; V_ARRAY(pvPostData) = psa; Особенно не понятно вот это V_VT(pvPostData) = VT_ARRAY | VT_UI1; V_ARRAY(pvPostData) = psa; Короче, весь блок. Бьюсь, безрезультатно!!
__________________
The Man Who Sold The World (© Nirvana) So What! (© Metallica) |
|
|
|
|
# 29 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
Я не понял нафига там парятся с OLE, уж больно как-то специфично... К сожалению в хелпе билдера нет ряда вещей из этого кода. Если нужно просто грузить урлы в окно, тогда вот этого во вложении должно быь достаточно... заодно там простой пример как можно хистори грузить в реестр - из реестра... но так делать не обязательно
)
|
|
|
|
|
# 30 |
|
Member
Регистрация: 21.08.2003
Адрес: Россия
Пол: Male
Сообщения: 388
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Спасибо за вложение. Как раз то, что нужно! Буду теперь дорабатывать.
PS А в моем даже получаться стало с переделкой. Наверно, день удачный выдался
__________________
The Man Who Sold The World (© Nirvana) So What! (© Metallica) |
|
|
|
|
# 31 |
|
Member
Регистрация: 21.08.2003
Адрес: Россия
Пол: Male
Сообщения: 388
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Теперь у меня вот такие вопросы.
Вы пользуетесь программой для обучения (подобной сабжу). Какие Вам понадобились элементы интерфейса (во загнул ;кнопки и тд). Короче, нужно разработать элементы для навигации.Жду предложений.
__________________
The Man Who Sold The World (© Nirvana) So What! (© Metallica) |
|
|
|
|
# 32 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
Zueuk
ИМХО У тутора должны быть только две кнопки - ... ну не считая всякой стандартной всячины типа свернуть/закрыть - "Далее" и "ТЕСТ"... При достижении конца урока можно организовать тестирование. |
|
|
|
|
# 33 |
|
Member
Регистрация: 21.08.2003
Адрес: Россия
Пол: Male
Сообщения: 388
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
/7y3uK
Тест лучше на JavaScript сделать? И, наверное, внедрить его в уроки? Я думаю сделать для каждого раздела свою папку. В эту папку загнать папки с подразделами. И отдельно - папку под тесты. Т.е. вот такая схема: Большой раздел->подраздел (или несколько, в зависимости от количества уроков и от размера большого раздела)->уроки. На какой уровень засунуть тесты, если такая схема нормальная? И еще. Возникла такая проблемка. Запускаю программу - она открывает страницу по умолчанию. Создал кнопку "Назад". И при нажатии, когда истории страниц еще нет, программа вылетает по ошибке (что правильно). Так вот, как обработать этот момент? Какие методы есть работы с "историей"?
__________________
The Man Who Sold The World (© Nirvana) So What! (© Metallica) Последний раз редактировалось Zueuk; 04.12.2004 в 22:08. |
|
|